2013-03-26 15 views
15

Próbuję uruchomić alembic migracji i kiedy biegnęsqlalchemy.exc.ArgumentError: Nie można załadować wtyczki: sqlalchemy.dialects: kierowca

alembic revision --autogenerate -m "Added initial tables" 

zawiedzie mówiąc

sqlalchemy.exc.ArgumentError: Can't load plugin: sqlalchemy.dialects:driver 

bazę danych url jest

postgresql+psycopg2://dev:[email protected]/db 

a ja nawet psycopg2 zainstalowany w moim virtualenv

$yolk -l 
Flask-Login  - 0.1.3  - active 
Flask-SQLAlchemy - 0.16   - active 
Flask   - 0.9   - active 
Jinja2   - 2.6   - active 
Mako   - 0.7.3  - active 
MarkupSafe  - 0.15   - active 
Python   - 2.7.2  - active development (/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload) 
SQLAlchemy  - 0.8.0  - active 
Werkzeug  - 0.8.3  - active 
alembic   - 0.4.2  - active 
antiorm   - 1.1.1  - active 
appscript  - 1.0.1  - active 
distribute  - 0.6.27  - active 
envoy   - 0.0.2  - active 
osascript  - 0.0.4  - active 
pep8   - 1.4.5  - active 
pip    - 1.1   - active 
psycopg2  - 2.4.6  - active 
wsgiref   - 0.1.2  - active development (/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7) 
yolk   - 0.4.3  - active 

Którego przyczyną może być ten problem?

Odpowiedz

27

Oto jak produkować błąd tak:

>>> from sqlalchemy import * 
>>> create_engine("driver://") 
Traceback (most recent call last): 
... etc 
sqlalchemy.exc.ArgumentError: Can't load plugin: sqlalchemy.dialects:driver 

więc powiedziałbym, że nie są w rzeczywistości za pomocą adresu URL postgresql myślisz, że jesteś - prawdopodobnie wzywają domyślnej generowane alembiku. gdzieś ini.

+0

masz rację, ja brudząc się gdzieś (nie wiem dokładnie gdzie), jestem w stanie przenieść proces do przodu, chociaż wstrzymane http://stackoverflow.com/questions/15660676/alembic-autogenerate-producing-empty-migration, daj mi znać, jeśli masz jakieś pomysły. DZIĘKUJĘ WAM bardzo za pomoc – daydreamer

1

Wypróbuj te polecenia, aby zainstalować brakujące pakiety:

sudo apt-get install libpq-dev 
sudo pip install psycopg2 
sudo pip install redshift-sqlalchemy 
sudo pip install sqlparse 
2

dla tych, którzy nie zauważyli go, „default generowane alembic.ini” zzzzeek odnosi się to w katalogu głównym projektu .

Cały problem polega na ustawieniu parametru konfiguracyjnego sqlalchemy.url w pliku alembic.ini. Można go również ustawić programowo zgodnie z opisem w https://stackoverflow.com/a/15668175/973380.

+0

"alembic.ini" może być * wszędzie *. A nick Mike'a ma tylko 3 'z's: d –

1

Zauważ, że program nie faktycznie określić sterownik ale dialektem: Program ma postać dialect://lubdialect+driver://.

Na przykład poprawne adresy URL, aby połączyć się z bazą danych PostgreSQL by zacząć na przykład postgres:// (który domyślnie używając psycopg2) lub wybranie sterownika wyraźnie (postgres+psycopg2://, lub z innym kierowcą).

Jeśli zdarzy się określić tylkopsycopg2 dostaniesz błąd

sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:psycopg2 
Powiązane problemy