https://qiita.com/shu_0115/items/0378fd8de049a9b7d77b
https://qiita.com/fukumone/items/b8934f78f841b19edbbe
こんにちは!Rails歴1年(独学)の者です。現在、参考書のタスク管理アプリ(どこまで読んだか、みたいな物を記録するアプリ)を個人で開発しており、上記のサイトを参考にしHerokuでRailsアプリのStaging環境をデプロイをしております。
Herokuの設定(MySQLの設定)などは順調に進みました。
そこで1つ質問があるのですが、heroku run rake db:migrate RAILS_ENV=staging のコマンドを叩くと以下のようなエラーが出ます。
ちなみに、ローカル環境のDB(development)ではエラーは出なく、migrateコマンドを実行できます。
何故、HerokuのStaging環境のみmigrateでエラーが出るのでしょうか?
-- rename_column(:book_photos, :book_id, :book_list_id) (10.9ms) ALTER TABLE `book_photos` CHANGE `book_id` `book_list_id` int(11) NOT NULL (4.1ms) SELECT RELEASE_LOCK('1734371501838832185') rake aborted! StandardError: An error has occurred, all later migrations canceled: Mysql2::Error: Error on rename of './heroku_89832e8d2f661b7/#sql-149d1_b39a500e' to './heroku_89832e8d2f661b7/book_photos' (errno: 150): ALTER TABLE `book_photos` CHANGE `book_id` `book_list_id` int(11) NOT NULL //app/vendor/bundle/ruby/2.3.0/gems/mysql2-0.3.21/lib/mysql2/client.rb:80:in `_query' /app/vendor/bundle/ruby/2.3.0/gems/mysql2-0.3.21/lib/mysql2/client.rb:80:in `block in query' /app/vendor/bundle/ruby/2.3.0/gems/mysql2-0.3.21/lib/mysql2/client.rb:79:in `handle_interrupt' /app/vendor/bundle/ruby/2.3.0/gems/mysql2-0.3.21/lib/mysql2/client.rb:79:in `query' /app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:218:in `block in execute' /app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/connection_adapters/abstract_adapter.rb:589:in `block in log' /app/vendor/bundle/ruby/2.3.0/gems/activesupport-5.0.2/lib/active_support/notifications/instrumenter.rb:21:in `instrument' /app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/connection_adapters/abstract_adapter.rb:583:in `log' /app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:218:in `execute' /app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/connection_adapters/mysql/database_statements.rb:31:in `execute' /app/vendor/bundle/ruby/2.3.0/gems/activerecord-5.0.2/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:500:in `rename_column' ・・・(以下省略)
引っかかっているマイグレーションファイルの中身は以下です。
class RenamebookIdColumnToBookphotos < ActiveRecord::Migration[5.0] def change rename_column :book_photos, :book_id, :book_list_id end end
ローカル環境のDB(development)はエラーは出ずmigrateを実行できるのも不思議です。
是非、アドバイスなど、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー