Docker + PostgreSQLにてFAILED: Can’t locate revision identified by ‘hogehoge’エラーでマイグレーションができない

この記事を書いた人
井上 周

WEBのバックエンドエンジニア。金沢大学大学院→株式会社マイベスト。
最も得意な言語はRuby(Rails)。その他、GoやPython、TypeScriptsを使った開発を行っています。

井上 周をフォローする

はじめに

Alembicを使ってpythonにてDBの開発を行っていたときに、少しだけハマったエラーについて。

一旦DBを初期化しようとしても、エラーが出てしまう。

$ alembic downgrade base
container_name_1     | FAILED: Can't locate revision identified by '90b5e2f5aebf'

解決策

ちょっと調べてみると、解決方法は2つあった。

  1. DB上のバージョン管理ファイルを直接削除する
  2. Dockerのボリュームを削除する

1の方法も試みたが、うまくいかなかったので2の方法で無理やり解決した。

$ docker volume rm container_name_db-data
// 再度マイグレーションを実行
$alembic upgrade head

1の方法はこちらの記事を参考にさせてもらった。

Flask: [root] Error: Can't locate revision identified by 'XXXXXXX' が出てしまい、migrateできないとき。 - Qiita
エラーの発生migration ファイルを消して再度flask db init -> flask db migrateした際、(flask_env) C:\Users\ryosu\Desktop…

原因

どうやらAlembicにてマイグレーションを作成した時点でのファイルを削除してしまっていた模様。

基本は一度downgradeしてから調整しないといけなさそうだった。

たしかに、Railsなどでもmigrationファイルを編集するとDBのロールバックなどは手こずる。

コメント

タイトルとURLをコピーしました