Back to Blog

ERROR [flask_migrate] Error: Can’t locate revision identified by ~というエラーを対処する

flask

2024年7月10日

こんにちは!

今回の記事では、ERROR [flask_migrate] Error: Can’t locate revision identified by 〜というエラーの対処方法について解説したいと思います。

このエラーは、データベース内のalembic_versionテーブルに格納されているリビジョンIDが、現在のマイグレーションディレクトリに存在しないために発生します。

エラーの原因と対策について詳しく解説します。

エラーが発生した状況

まず、エラーが発生した状況について、migrateコマンドを実行した際にエラーがでました。

flask db migrate
→ERROR [flask_migrate] Error: Can't locate revision identified by '9912ca86c1a4'

データベースの構造を変更した場合にmigrateコマンドを実行しますが、その際にエラーがでました。

エラーの原因

エラーの原因は、データベース内のalembic_versionテーブルに格納されているリビジョンIDが、現在のマイグレーションディレクトリに存在しないためです。

以前のマイグレーションディレクトリが削除されたり、新しい環境で初期化されたりした結果として発生する場合があります。

私の環境の場合、Renderというホスティングサービスで、migrateディレクトリが消えていたため、発生しました。

ERROR [flask_migrate] Error: Can’t locate revision identified by ~というエラーを対処する方法

では、どのようにすれば、エラーを対処できるのかについて解説します。

まず、DBにアクセスして、alembic_versionテーブルを削除します。

DELETE FROM alembic_version;

次に、マイグレーションディレクトリの初期化を行います。

flask db init

新しいマイグレーションスクリプトの生成します。

flask db migrate

最後に、データベースのアップグレードを行います。

flask db upgrade

これで、完了です!

注意点としては、この作業で元のデータが消えるわけではありませんが、事前にバックアップを取得することが必要です。データベースの構造を変えるため、慎重に操作をすることが大切です。

まずは、バックアップを取得して、元のデータにいつでも戻せる状態になってから、上記のコマンドを実行しましょう。

関連記事

まとめ

今回の記事では、ERROR [flask_migrate] Error: Can’t locate revision identified by 〜というエラーの対処方法について解説しました。

Flaskでデータベースを使用している方は発生する可能性があるので覚えておきましょう。

当ブログでエラーの解決ができれば幸いです。

ここまでお読みいただきありがとうございました。

Webの知識を作りながら学ぶ
Flask WebAcademy

SNSアプリやチャットアプリ、さまざまなアプリを作りながら学べる実践的なカリキュラム

詳細を見る