Почему я продолжаю получать сообщение об ошибке root не может найти ревизию, обозначенную '1cccee45d6e7'? - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь настроить и запустить мою базу данных для flask, и возникает проблема, когда я набираю flask db migrate -m "users table". Это продолжает давать мне ошибку, которая говорит это:

ERROR [root] Error: Can't locate revision identified by '1cccee45d6e7'

Я попытался удалить файл миграции, а затем повторно запустил код для запуска базы данных в cmd:

(venv) $ flask db init 

, который работал нормально и создал новый файл миграции в каталоге приложения фляги. Тогда я сделал:

(venv) $ flask db migrate -m "users table"

и вот где я снова получаю проблему:

(venv) C:\sitesfolder\microblog\app>flask db migrate
INFO  [alembic.runtime.migration] Context impl SQLiteImpl.
INFO  [alembic.runtime.migration] Will assume non-transactional DDL.
ERROR [root] Error: Can't locate revision identified by '1cccee45d6e7'

Я следую этому учебнику .

Ответы [ 2 ]

0 голосов
/ 23 июля 2019

Просто вы можете изменить alembic_version в базе данных в соответствии с вашей версией папки в миграциях.Тогда это работает для меня.

0 голосов
/ 11 июня 2019

Отказ от ответственности: приведенное ниже решение не идеально для каждой ситуации.

Как правило, это означает, что ваша база данных не синхронизирована с файлами миграции.Это может произойти, если файл редакции был удален после применения миграции.Проверьте вашу базу данных, она должна содержать таблицу с последней примененной миграцией.Если для этой ревизии нет файла, вы получите ошибку Can't locate revision....

Если вы только начинаете миграцию, одним из возможных решений будет:

  • Удалитьвсе ваши таблицы и файлы миграции
  • Повторная инициализация ваших миграций
  • Создание нового файла миграции из ваших моделей
  • Применение миграций

Thisоднако может иметь некоторые нежелательные последствия, если у вас уже есть некоторые ревизии, предназначенные для управления исходным кодом и применяемые для других развертываний, таких как машины или серверы других разработчиков.По сути, все среды необходимо будет повторно инициализировать таким образом, но, опять же, это может не иметь значения, если вы только начинаете заново.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...