without query postgres example python sqlalchemy psycopg2 alembic

python - query - heroku flask postgres



sqlalchemy.exc.ArgumentError: No se puede cargar el complemento: sqlalchemy.dialects: driver (4)

Aquí es cómo producir un error como ese:

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

así que yo diría que en realidad no estás usando la URL postgresql que crees que estás; probablemente estés invocando un alembic.ini generado de forma predeterminada en algún lugar.

Estoy tratando de ejecutar la migración alembic y cuando ejecuto

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

Falla diciendo

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

la url de la base de datos es

postgresql+psycopg2://dev:passwd@localhost/db

e incluso tengo psycopg2 instalado en mi 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

¿Qué podría estar causando este problema?


Intente esos comandos para instalar los paquetes que faltan:

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


Observe que el esquema no especifica realmente el controlador, sino el dialecto : el esquema es de forma dialect:// o dialect+driver:// .

Por ejemplo, las direcciones URL correctas para conectarse a una base de datos PostgreSQL comenzarían con, por ejemplo, postgres:// (que de manera predeterminada usa psycopg2 ), o elegir un controlador explícitamente ( postgres+psycopg2:// , o con otro controlador).

Si le psycopg2 especificar solo psycopg2 obtendrá el error

sqlalchemy.exc.NoSuchModuleError: Can''t load plugin: sqlalchemy.dialects:psycopg2


Para aquellos que no lo han notado, el "alembic.ini generado por defecto" al que se refiere zzzzeek se encuentra en el directorio raíz del proyecto.

Todo el problema es configurar el parámetro de configuración sqlalchemy.url en el archivo alembic.ini . Además, se puede configurar mediante programación como se explica en https://.com/a/15668175/973380 .