У меня есть flask-migrate (версия 1.8.0), хорошо работающая с базой данных sqlite в среде разработки. Теперь я хотел бы перенести наши данные в MySQL и сохранить всю историю миграции (поэтому он остается в синхронизации с нашими моделями Flask-SQLAlchemy в нашем репозитории git).Как использовать Flask-migrate в нескольких средах разработки
Я создал пустую базу данных MySQL, и после изменения моего SQLALCHEMY_DATABASE_URI, я попытался запустить:
python manage.py db upgrade
Это привело к ошибке о не в состоянии отказаться от таблицы migrate_version. (. Что имеет смысл, так как это новая база данных, хотя SQLite фактически содержит таблицу «alembic_version» не «migrate_version»)
Итак, я пытался инициализировать эту новую базу данных:
python manage.py db init
Теперь я получите сообщение об ошибке: «Переходы каталога уже существуют».
Я могу переименовать эту папку и повторно запустить команду без проблем, но затем я потеряю все свои предыдущие миграции. Я думаю, что у нас будут те же проблемы, когда мы также перейдем к нашей тестовой и производственной среде.
Я видел в документах Flask-Migrate поддерживает несколько баз данных, но я думаю, что это будет больше для поддержки нескольких баз данных в одной среде разработки. Есть ли способ, чтобы Flake-Migrate отслеживал изменения в нескольких средах разработки?
Спасибо за предложение. Я заново создал базу данных, запустил 'python manage.py db upgrade', но все равно возвратил ошибку' sqlalchemy.exc.ProgrammingError: (mysql.connector.errors.ProgrammingError) 1051 (42S02): Неизвестная таблица 'sps.migrate_version '[SQL: u' \ nDROP TABLE migrate_version '] ' – AmZar
Вы« сбросили »базу данных и сделали совершенно новую, как я предложил? Кажется, вы не сделали этого, основываясь на ваших комментариях. – Miguel
Да. Я сбросил db и заново создал его. Я также попытался создать схему с новым именем. Однако ваша заметка о sqlalchemy-migrate помогла. У меня были установлены как sqlalchemy-migrate, так и flask-migrate. Я удалил первый. Я все же получил те же результаты. – AmZar