前提・実現したいこと
本番環境の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
回答1件
あなたの回答
tips
プレビュー