LoginSignup
1
0

More than 3 years have passed since last update.

【credentials】CircleCIのテストでエラー!「ActiveRecord::StatementInvalid: Mysql2::Error: Table ‘〇〇’ doesn’t exist: SHOW FULL FIELDS FROM `〇〇`」

Posted at

はじめに

ローカルでRSpecのテストをパスした後、CircleCIのテストでタイトルのエラーとなり、それを解決するまでの記録。

検証環境

$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.15.3
BuildVersion:   19D76
$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin19]
$ rails -v
Rails 5.2.4.2

rails db:migrate

エラーの内容から、テーブルがないなら、db:migrateか?と思い、

 $ bin/rails db:migrate RAILS_ENV=production

をターミナルで試す。

すると、

rails aborted!
ArgumentError: Missing `secret_key_base` for 'production' environment, set this string with `rails credentials:edit`
/Users/aa/projects/my_app/config/environment.rb:5:in `<top (required)>'
bin/rails:4:in `<main>'
Tasks: TOP => db:migrate => db:load_config => environment
(See full trace by running task with --trace)

、と言われる。

教えてくれている通りに
rails credentials:edit
を行うと、、

$ rails credentials:edit
No $EDITOR to open file in. 

ファイルを開くための $EDITOR がありません。

また検索し、credentialsをeditする為の$EDITORを登録する。

# .bash_profileに環境変数 EDITOR を設定する
$ echo 'export EDITOR="vi"' >> ~/.bash_profile
# bash_profileを読み込ませる
$ source ~/.bash_profile
# 登録できている事を確認する。
$ echo $EDITOR

これで、credentialsを確認できるようになり、内容を確認したが、Missing secret_key_baseという事はなく、登録されている。

次に、
Rails 5.2 で ActiveSupport::MessageEncryptor::InvalidMessage
こちらを拝見し、

CircleCIの環境変数に登録しているmaster.keyとその時点でのローカルのもの(config/master.key)が一致しているか確認するが、
問題なく一致していた。

ここで、気づく。
登録されているsecret_key_baseが間違っている?
また検索し、

$ RAILS_ENV=production bundle exec rails secret

を実行。
長いキーが返ってくるので、それをcredentialに登録し直す。

これで再度プッシュすると、自分の環境だとうまくテストがパスした。

参考にさせて頂いた記事

終わりに。

最後まで読んで頂きありがとうございます:bow_tone1:
転職の為、未経験の状態からRailsを学習しております。正しい知識を着実に身に着け、実力のあるエンジニアになりたいと考えています。継続して投稿していく中で、その為のインプットも必然的に増え、成長に繋がるかと考えています。
今現在、初心者だからといって言い訳はできないですが、投稿の内容に間違っているところや、付け加えるべきところが多々あるかと思いますので、ご指摘頂けると幸いです。この記事を読んで下さりありがとうございました。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0