開発環境では、フラスコマイグレーション(バージョン1.8.0)がsqliteデータベースとうまく機能しています。今私は私たちのデータをMySQLに移行し、私たちの移行履歴をすべて維持したいと思います(私たちのgitリポジトリのFlask-SQLAlchemyモデルと同期しています)。複数の開発環境でFlask-migrateを使用するには
私は、空のMySQLデータベースを作成し、そして私のSQLALCHEMY_DATABASE_URIを変更した後、私が実行している試みた:
python manage.py db upgrade
テーブルmigrate_versionをドロップすることができない程度の誤差を生じたこと。 (。どちらこれは、新しいデータベースであるため、sqliteのは実際にはない「migrate_version」「alembic_version」テーブルが含まれていますが、理にかなって)
だから、私はこの新しいデータベースを初期化してみました:
python manage.py db init
今私は、 「ディレクトリの移行はすでに存在しています」というエラーが表示されます。
私はそのフォルダの名前を変更して問題なくコマンドを再実行できますが、以前の移行はすべて失われます。テスト環境や運用環境に移行するときも同じ問題があると思います。
Flask-Migrateは複数のデータベースをサポートしていますが、1つの開発環境で複数のデータベースを管理する方が多くなると思います。 Flask-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