【credentials】 CircleCI 테스트에서 오류! "ActiveRecord::StatementInvalid: Mysql2::Error: Table ‘〇〇’ doesn’t exist: SHOW FULL FIELDS FROM `〇〇`"

소개



로컬에서 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에 다시 등록한다.

이것으로 다시 푸시하면, 자신의 환경이라고 잘 테스트가 패스했다.

참고로 한 기사


  • Rails5.2에서 추가 된 credentials.yml.enc 키폰

  • Rails 프로덕션 환경의 secret_key_base 획득

  • 끝에.



    끝까지 읽어 주셔서 감사합니다
    전직을 위해, 미경험의 상태로부터 Rails를 학습하고 있습니다. 올바른 지식을 꾸준히 착용하고 실력 있는 엔지니어가 되고 싶습니다. 계속해서 투고해 나가는 가운데, 그 때문에의 인풋도 필연적으로 늘어나, 성장에 연결될까라고 생각하고 있습니다.
    지금 현재, 초보자라고 해서 변명은 할 수 없습니다만, 투고의 내용에 잘못되어 있는 곳이나, 덧붙여야 할 곳이 많이 있을까 생각하므로, 지적 받을 수 있으면 다행입니다. 이 기사를 읽어 주셔서 감사합니다.

    좋은 웹페이지 즐겨찾기