Me gustaría realizar una migración para una aplicación Flask. Estoy usando Alembic.
Sin embargo, recibo el siguiente error.
Target database is not up to date.
En línea, leí que tiene algo que ver con esto. http://alembic.zzzcomputing.com/en/latest/cookbook.html#building-an-up-to-date-database-from-scratch
Desafortunadamente, no entiendo cómo actualizar la base de datos y dónde / cómo debo escribir el código que se proporciona en el enlace. Si tiene experiencia con migraciones, ¿podría explicarme esto?
Gracias
fuente
Esto se puede solucionar de muchas formas:
1 Para corregir este error, elimine el último archivo de migración (un archivo de Python) y luego intente realizar una migración de nuevo.
Si el problema persiste, pruebe estos comandos:
$ flask db stamp head # To set the revision in the database to the head, without performing any migrations. You can change head to the required change you want. $ flask db migrate # To detect automatically all the changes. $ flask db upgrade # To apply all the changes.
fuente
Tuve que eliminar algunos de mis archivos de migración por alguna razón. No estoy seguro de por qué. Pero eso solucionó el problema, algo así.
Un problema es que la base de datos termina actualizándose correctamente, con todas las tablas nuevas, etc., pero los archivos de migración en sí mismos no muestran ningún cambio cuando uso la migración automática.
Si alguien tiene una mejor solución, hágamelo saber, ya que en este momento mi solución es un poco hacky.
fuente
Base = declarative_base()
y también recuerdofrom sqlalchemy.ext.declarative import declarative_base
$ flask db stamp head # To set the revision in the database to the head, without performing any migrations. You can change head to the required change you want. $ flask db migrate # To detect automatically all the changes. $ flask db upgrade # To apply all the changes.
Puede encontrar más información en la documentación https://flask-migrate.readthedocs.io/en/latest/
fuente
También me encontré con diferentes cabezas y quería cambiar uno de los campos de cadena a entero, así que primero ejecute:
$ flask db stamp head # to make the current the same $ flask db migrate $ flask db upgrade
¡Ya está resuelto!
fuente
Esto también puede suceder si usted, como yo, acaba de comenzar un nuevo proyecto y está utilizando una base de datos SQLite en memoria (
sqlite:///:memory:
). Si aplica una migración en una base de datos de este tipo, obviamente la próxima vez que quiera decir autogenerar una revisión, la base de datos seguirá en su estado original (vacía), por lo que alambic se quejará de que la base de datos de destino no está a la altura fecha. La solución es cambiar a una base de datos persistente.fuente
Para corregir este error, elimine el último archivo de migración (un archivo de Python) y luego intente realizar una migración de nuevo.
fuente
Intente eliminar todas las tablas antes de ejecutar el comando db upgrade.
fuente
Para resolver esto, dejo caer (elimino) las tablas en la migración y ejecuto estos comandos
y
fuente