質問: ### したいこと Docker内でマイグレーションする際マイグレーションファイルにエラーがあったため、特定のマイグレーションファイルのみ先にマイグレーションしたい。 ### 現状 Docker内で作成したデータベースでマイグレーションファイルの順番に間違いがあり、マイグレーションができない状態です。 ### 原因・理由 ・migration時に外部キー元のテーブルがないため。 ※既存のrailsアプリにDockerを導入しようとしているため、一度にマイグレーションをせざるをえない状況になっています。 ### 行ったこと、調べたこと ターミナルでdocker-compose run web bin/rake db:migrateを実行したところ次のエラーが表示される。 ``` PG::UndefinedTable: ERROR: relation "gyms" does not exist ``` 下記記事の通り、先に実行するべきマイグレーションIDを指定してマイグレーションを実行したところ、指定をしているはずなのにエラーが出るファイルがマイグレーションされてしまいます。 https://qiita.com/hrnEaSwzbOLaWj6/items/a23db1e630bafb18fe27 ``` PG::UndefinedTable: ERROR: relation "gyms" does not exist ``` Docker内でマイグレーションファイルのロールバックはできています。 解決方法としては、 ・現在のDocker内のデータベースを消して、Docker内に新しく【マイグレーションファイルを修正した、ローカルのリポジトリを反映したdatabase: myapp_development】を作成してマイグレーションすれば良いと思っています。 そのために今回消さなければいけない、volumeを探す方法がわかりません。 ターミナルでdocker volume ls と入力すると、画像の様にvolume名が表示されますがどのボリュームを消して良いのかがわかりません。 動いているvolume名を見つける方法についてアドバイスをください。 また、Docker内でマイグレーションファイルを指定できる方法がありましたら教えてください。
回答: 解決しました。 マイグレーションIDを指定してマイグレーションを実行する方法が間違っていた様です。 【手順】 docker-compose run web bin/rake db:migrate:statusでマイグレーーションされてるファイル、されてないファイルを確認。 docker-compose run web bin/rake db:migrate:up VERSION=hogehogehogeで先にマイグレーションしたいファイルを指定。