Target database is not up to date
After creating a migration, either manually or as --autogenerate
, you must apply it with alembic upgrade head
. If you used db.create_all()
from a shell, you can use alembic stamp head
to indicate that the current state of the database represents the application of all migrations.
This Worked For me
$ flask db stamp head$ flask db migrate$ flask db upgrade
My stuation is like this question, When I execute "./manage.py db migrate -m 'Add relationship'", the error occused like this "alembic.util.exc.CommandError: Target database is not up to date."
So I checked the status of my migrate:
(venv) ]#./manage.py db headsd996b44eca57 (head)(venv) ]#./manage.py db currentINFO [alembic.runtime.migration] Context impl SQLiteImpl.INFO [alembic.runtime.migration] Will assume non-transactional DDL.715f79abbd75
and found that the heads and the current are different!
I fixed it by doing this steps:
(venv)]#./manage.py db stamp headsINFO [alembic.runtime.migration] Context impl SQLiteImpl.INFO [alembic.runtime.migration] Will assume non-transactional DDL.INFO [alembic.runtime.migration] Running stamp_revision 715f79abbd75 -> d996b44eca57
And now the current is same to the head
(venv) ]#./manage.py db currentINFO [alembic.runtime.migration] Context impl SQLiteImpl.INFO [alembic.runtime.migration] Will assume non-transactional DDL.d996b44eca57 (head)
And now I can do the migrate again.