前提・実現したいこと
AWSのEC2に対してターミナルにrails db:seedを打ち込んでいるのですが、データが反映されません。
なお、localで同様に実行するとうまく行きます。
Ruby on rails[6.0]
Unicorn
Nginx
Capistrano
導入済
発生している問題・エラーメッセージ
エラーメッセージはなく、ただコマンドを打ち込んで元に戻るという感じです。
該当のソースコード
rails
1seeds.rb 2 35.times do |n| 4 name = Faker::Japanese::Name.name 5 email = Faker::Internet.email 6 password = "111111a" 7 description = "これは架空の人物です。生年月日・年齢・国籍・経歴:いずれも不明。素性については多くの仮説が立てられているが、正確なところはわかっていない。" 8 9 celeb = Celeb.create( 10 name: name, 11 email: email, 12 password: password, 13 description: description 14 ) 15 celeb.image.attach(io: File.open('public/images/image.png'), filename: 'image.png') 16 17end 18 19
public/images/image.pngに画像が入っていることは確認済み
試したこと
DISABLE_DATABASE_ENVIRONMENT_CHECK=1 rails db:seed RAILS_ENV=productionこちらのコマンドを作成中のアプリのディレクトリ、currentディレクリのどちらの場合でも試してみました。しかし、特にエラーなどは出ていません。
補足情報(FW/ツールのバージョンなど)
関係あるかはわからないですが
ドメイン名の変更、SSL化は完了しています。
logではどうなってます?
DISABLE_DATABASE_ENVIRONMENT_CHECK=1 rails db:seed RAILS_ENV=productionをアプリのディレクトリで実行した後にless log/production.logとサーバーログをみてみたのですが、特にエラーとみられるものはありませんでした。
D, [2021-03-21T02:37:42.794568 #25742] DEBUG -- : ESC[1mESC[35m (0.1ms)ESC[0m ESC[1mESC[35mSET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483ESC[0m
D, [2021-03-21T02:37:43.118701 #25742] DEBUG -- : ESC[1mESC[35m (0.2ms)ESC[0m ESC[1mESC[35mBEGINESC[0m
D, [2021-03-21T02:37:43.119157 #25742] DEBUG -- : ESC[1mESC[36mUser Exists? (0.3ms)ESC[0m ESC[1mESC[34mSELECT 1 AS one FROM `users` WHERE `users`.`email` = BINARY 'admin_user123@gmail.com' LIMIT 1ESC[0m
D, [2021-03-21T02:37:43.292442 #25742] DEBUG -- : ESC[1mESC[35m (0.1ms)ESC[0m ESC[1mESC[31mROLLBACKESC[0m
D, [2021-03-21T03:00:14.726216 #25921] DEBUG -- : ESC[1mESC[35m (0.3ms)ESC[0m ESC[1mESC[35mSET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483ESC[0m
D, [2021-03-21T03:00:14.732682 #25921] DEBUG -- : ESC[1mESC[35m (0.2ms)ESC[0m ESC[1mESC[34mSELECT `schema_migrations`.`version` FROM `schema_migrations` ORDER BY `schema_migrations`.`version` ASCESC[0m
D, [2021-03-21T03:00:14.734380 #25921] DEBUG -- : ESC[1mESC[35m (0.1ms)ESC[0m ESC[1mESC[35mSET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483ESC[0m
D, [2021-03-21T03:00:15.058048 #25921] DEBUG -- : ESC[1mESC[35m (0.2ms)ESC[0m ESC[1mESC[35mBEGINESC[0m
D, [2021-03-21T03:00:15.058534 #25921] DEBUG -- : ESC[1mESC[36mUser Exists? (0.3ms)ESC[0m ESC[1mESC[34mSELECT 1 AS one FROM `users` WHERE `users`.`email` = BINARY 'admin_user123@gmail.com' LIMIT 1ESC[0m
D, [2021-03-21T03:00:15.233304 #25921] DEBUG -- : ESC[1mESC[35m (0.1ms)ESC[0m ESC[1mESC[31mROLLBACKESC[0m
見づらいですが最新のlogをwげておきます
最新の、が正しい部分かわからないのですが。。。
db:seedしたところだけ載せてください
db:seedした後にless log/production.logして一番下にあったものがこちらになります。
もしかするとこのlogの出し方が違っていますか??
時刻みて、db:seed実行の最初からであることを確認いただけますか
[2021-03-21T06:21:51.830151 #27106] DEBUG -- : ESC[1mESC[35m (0.3ms)ESC[0m ESC[1mESC[35mSET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO
'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483ESC[0m
D, [2021-03-21T06:21:51.841731 #27106] DEBUG -- : ESC[1mESC[35m (0.2ms)ESC[0m ESC[1mESC[34mSELECT `schema_migrations`.`version` FROM `schema_migrations` ORDER BY `schema_migrations`.`version` ASCESC[0m
D, [2021-03-21T06:21:51.844457 #27106] DEBUG -- : ESC[1mESC[35m (0.1ms)ESC[0m ESC[1mESC[35mSET NAMES utf8, @@SESSION.sql_mode = CONCAT(CONCAT(@@sql_mode, ',STRICT_ALL_TABLES'), ',NO_AUTO_VALUE_ON_ZERO
'), @@SESSION.sql_auto_is_null = 0, @@SESSION.wait_timeout = 2147483ESC[0m
D, [2021-03-21T06:21:51.851023 #27106] DEBUG -- : ESC[1mESC[36mUser Load (0.2ms)ESC[0m ESC[1mESC[34mSELECT `users`.* FROM `users` WHERE `users`.`email` = 'admin_user123@gmail.com' LIMIT 1ESC[0m
時刻を見るとおそらくこちらでないかと思います。
rails db:seedを行ったと思われる記述がlogにみあたらないんですよ。
では試しに
RAILS_ENV=production rails db:seed
動かなかったら
RAILS_ENV=production bundle exec rails db:seed
で
試してみてください
試してみましたが、特に何も起こりませんでした。
logも先ほどと同じでした。
う〜〜む、、、、
で、結果としてUserにデータは入っていないのですね?
そうですね。
localではできるのですがEC2の方だとできない理由としては何が考えられますかね?
あなたの回答
tips
プレビュー