🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

1回答

2162閲覧

本番環境でマイグレーションができない。

wrx_sti

総合スコア1

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2021/01/21 14:16

編集2021/01/22 12:27

前提・実現したいこと

本番環境のDBにリセットをかけたらエラーが出てしまいました。
原因はおそらくintroductionカラムのデフォルト値が""になっているためだと思うのですが、変更の仕方がわかりません。
ローカル環境のintroductionカラムのデフォルト値を変更し本番環境でpullしてマイグレーションをしようとした時にエラーが起きたため、SHOW TABLES;でDBの中身を確認してもテーブルが作られていませんでした。
mysqlでデフォルト値を変更する方法はわかるのですが、テーブルができる前の段階なのでmysql上で変更できません。
この場合どうすればよろしいでしょうか?

発生している問題・エラーメッセージ

-- create_table(:users) rails aborted! StandardError: An error has occurred, all later migrations canceled: Mysql2::Error: BLOB, TEXT, GEOMETRY or JSON column 'introduction' can't have a default value: CREATE TABLE `users` (`id` bigint NOT NULL AUTO_INCREMENT PRIMARY KEY, `email` varchar(255) DEFAULT '' NOT NULL, `encrypted_password` varchar(255) DEFAULT '' NOT NULL, `reset_password_token` varchar(255), `reset_password_sent_at` datetime, `remember_created_at` datetime, `name` varchar(255) NOT NULL, `style` int DEFAULT 0 NOT NULL, `birthday` varchar(255) NOT NULL, `sex` int DEFAULT 0 NOT NULL, `profile_image_id` int DEFAULT 0 NOT NULL, `introduction` text DEFAULT '' NOT NULL, `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL)
[ec2-user@ip-172-31-3-254 pf_snooooow]$ rails db:migrate:status rails aborted! LoadError: Could not load the 'listen' gem. Add `gem 'listen'` to the development group of your Gemfile /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:89:in `register' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:44:in `require' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291:in `block in require' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:257:in `load_dependency' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291:in `require' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/evented_file_update_checker.rb:61:in `block in initialize' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/core_ext/kernel/reporting.rb:15:in `block in silence_warnings' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/core_ext/kernel/reporting.rb:28:in `with_warnings' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/core_ext/kernel/reporting.rb:15:in `silence_warnings' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/evented_file_update_checker.rb:59:in `initialize' (省略) /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291:in `block in require' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:257:in `load_dependency' /home/ec2-user/pf_snooooow/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.4/lib/active_support/dependencies.rb:291:in `require' bin/rails:9:in `<main>' Tasks: TOP => db:migrate:status => db:load_config => environment (See full trace by running task with --trace)

該当のソースコード

ソースコード

試したこと

ローカル環境のintroductionカラムのデフォルト値確認

https://teratail.com/questions/301797 こちらの記事と全く同じ状態ですが、解決方法がわかりませんでした。

補足情報(FW/ツールのバージョンなど)

リセットを行ったときのコマンドです。

RAILS_ENV=production DISABLE_DATABASE_ENVIRONMENT_CHECK=1 bundle exec rails db:drop

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/01/21 21:36

新しいマイグレーションファイルを作って実行してみるとか
winterboum

2021/01/22 09:19

リセットってどういうcommandで行いましたか? 入力したとおりに記述を。 migration でそのエラーが出るまでの出力を。もしくは rails db:migrate:status の結果を
wrx_sti

2021/01/22 12:30

回答ありがとうございます。 EC2上でのrails db:migrate:statusであってますでしょうか? gemfileに 'listen' 書いてるのですが、エラーに繋がりました。 ローカルだと正常に出ます。
guest

回答1

0

自己解決

vi db/migrate/でマイグレーションファイルを指定しひとつひとつ修正することで
マイグレーションできました!
回答ありがとうございました。

投稿2021/01/22 13:04

wrx_sti

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問