Я бы хотел выполнить миграцию для приложения Flask. Я использую Alembic.
Однако я получаю следующую ошибку.
Target database is not up to date.
В сети я прочитал, что это как-то связано с этим. http://alembic.zzzcomputing.com/en/latest/cookbook.html#building-an-up-to-date-database-from-scratch
К сожалению, я не совсем понимаю, как обновить базу данных и где / как мне написать код, указанный в ссылке. Если у вас есть опыт миграции, не могли бы вы мне это объяснить?
Благодарность
источник
Это можно решить разными способами:
1 Чтобы исправить эту ошибку, удалите последний файл миграции (файл python), затем попробуйте выполнить миграцию заново.
Если проблема не устранена, попробуйте эти команды:
$ 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.
источник
По какой-то причине мне пришлось удалить некоторые файлы миграции. Не знаю почему. Но это вроде как устранило проблему.
Одна из проблем заключается в том, что база данных обновляется должным образом со всеми новыми таблицами и т. Д., Но сами файлы миграции не показывают никаких изменений, когда я использую автоматическую миграцию.
Если у кого-то есть лучшее решение, пожалуйста, дайте мне знать, так как сейчас мое решение является своего рода хакерским.
источник
Base = declarative_base()
и также помнитеfrom 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.
Дополнительную информацию можно найти в документации https://flask-migrate.readthedocs.io/en/latest/.
источник
Я тоже столкнулся с разными головами, и я хотел изменить одно из полей со строки на целое число, поэтому сначала запустите:
$ flask db stamp head # to make the current the same $ flask db migrate $ flask db upgrade
Теперь это решено!
источник
Это также может произойти, если вы, как и я, только что начали новый проект и используете базу данных SQLite в памяти (
sqlite:///:memory:
). Если вы примените миграцию к такой базе данных, очевидно, что в следующий раз, когда вы захотите сказать автоматически сгенерировать ревизию, база данных все еще будет в исходном состоянии (пуста), поэтому alembic будет жаловаться, что целевая база данных не соответствует Дата. Решение - переключиться на постоянную базу данных.источник
Чтобы исправить эту ошибку, удалите последний файл миграции (файл python), а затем попробуйте выполнить миграцию заново.
источник
Попробуйте отбросить все таблицы перед выполнением команды db upgrade.
источник
Чтобы решить эту проблему, я отбрасываю (удаляю) таблицы в миграции и запускаю эти команды.
а также
источник