one delete datatypes python database migration sqlalchemy

python - delete - ¿Existe la herramienta de automigración SQLAlchemy como South para Django?



python sqlalchemy flask (4)

¿Has mirado en el uso de sqlalchemy-migrate ? http://shane.caraveo.com/2010/09/13/database-migrations-for-sqlalchemy-part-duex/

¿Existe la herramienta de automigración SQLAlchemy como South para Django?

Busqué en sqlalchemy-migrate pero no parece generar scripts de actualización de SQL de forma automática ni actualizar la base de datos de downgrade

Parece que con sqlalchemy-migrate necesita a) copiar manualmente su modelo anterior en un nuevo archivo b) crear un nuevo modelo en la aplicación y copiarlo en un nuevo archivo c) escribir / eliminar / modificar tablas manualmente en el dialecto extendido python sqlalchemy d ) genere el script de alteración de SQL e) ejecute el comando para ejecutar el script de alter sql

En cuanto a mí, no resuelve el problema y solo agrega sobrecarga, ya que simplemente puedo hacer d) manualmente y será mucho más rápido que hacer a), b), c) manualmente solo a d) que puedes hacer de una vez paso.

¿Hay bibliotecas de migración automática para SQLAlchemy como South para Django, o muchas herramientas de migración similares a RoR?

Lo que necesito es cambiar el modelo SQLAlchemy en la aplicación python, ejecutar la herramienta y comparará el esquema de base de datos actual con el nuevo esquema de base de datos que debe usar el nuevo modelo, y crear secuencias de comandos Alter que pueda ajustar manualmente y ejecutar.

¿Hay alguna solución como esta en Python?


Hay Alembic que parece muy prometedor, pero el problema es (por ahora) que el soporte para las bases de datos SQlite es muy limitado.


No hay ninguna en este momento. Alembic requiere que escriba código relacionado con la adición / eliminación / modificación de la estructura de la tabla o la creación / eliminación de la tabla. Así que nada como django south existe para sqlalchemy.


Puedes realizar migraciones automáticas con Alembic . Lo uso en dos proyectos a gran escala en los que estoy trabajando actualmente. El generador de migración automática puede reconocer:

  • Adiciones y eliminaciones de tablas
  • Adiciones y eliminaciones de columnas
  • Cambio de estado anulable en columnas.
  • Cambios básicos en los índices, restricciones únicas explícitamente nombradas y claves externas

(ver también: http://alembic.readthedocs.org/en/latest/autogenerate.html )

Instalar alambique

pip install alembic

o (dependiendo de la versión de Python que estés usando):

pip3 install alembic

Configurar alambique

Ejecute el siguiente comando en su proyecto:

alembic init alembic

Esto configurará un alambique para su proyecto, en una carpeta llamada alembic .

A continuación, deberá editar el archivo de configuración alembic.ini generado.

En el archivo env.py , dile a Alembic dónde encontrar el objeto de metadata de SQLAlchemy en tu proyecto.

(ver también: http://alembic.readthedocs.org/en/latest/tutorial.html#editing-the-ini-file )

Generar la migración.

Simplemente ejecuta la siguiente línea de comando:

alembic revision --autogenerate -m "Message for this migration"

O incluso (no recomendado):

alembic revision --autogenerate

Actualizar la base de datos

Después de esto, actualizo la base de datos con este simple comando desde la carpeta que contiene el archivo de configuración alembic.ini :

alembic upgrade head

(Véase también: http://rodic.fr/blog/automatic-migrations-sqlalchemy-alembic/ )