Nuestros mejores desarrolladores agotaron sus depósitos de café, investigando noche y día por la solución, hasta que Talía encontró el arreglo en Gogs así que en este momento la compartimos con nosotros.
Solución:
Después de crear una migración, ya sea manualmente o como --autogenerate
debes aplicarlo con alembic upgrade head
. si usaste db.create_all()
desde un caparazón, puedes usar alembic stamp head
para indicar que el estado actual de la base de datos representa la aplicación de todas las migraciones.
Esto funcionó para mí
$ flask db stamp head
$ flask db migrate
$ flask db upgrade
Mi situación es como esta pregunta, cuando ejecuto “./manage.py db migrar -m ‘Agregar relación'”, el error aparece así “alembic.util.exc.CommandError: la base de datos de destino no está actualizada”.
Así que verifiqué el estado de mi migración:
(venv) ]#./manage.py db heads
d996b44eca57 (head)
(venv) ]#./manage.py db current
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
715f79abbd75
¡y descubrió que las cabezas y la corriente son diferentes!
Lo arreglé siguiendo estos pasos:
(venv)]#./manage.py db stamp heads
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
INFO [alembic.runtime.migration] Running stamp_revision 715f79abbd75 -> d996b44eca57
Y ahora la corriente es igual a la cabeza
(venv) ]#./manage.py db current
INFO [alembic.runtime.migration] Context impl SQLiteImpl.
INFO [alembic.runtime.migration] Will assume non-transactional DDL.
d996b44eca57 (head)
Y ahora puedo hacer la migración de nuevo.
Sección de Reseñas y Valoraciones
Si crees que te ha resultado útil nuestro post, te agradeceríamos que lo compartas con más desarrolladores y nos ayudes a difundir esta información.