【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에 다시 등록한다.
이것으로 다시 푸시하면, 자신의 환경이라고 잘 테스트가 패스했다.
참고로 한 기사
$ 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에 다시 등록한다.
이것으로 다시 푸시하면, 자신의 환경이라고 잘 테스트가 패스했다.
참고로 한 기사
$ 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
No $EDITOR to open file in.
# .bash_profileに環境変数 EDITOR を設定する
$ echo 'export EDITOR="vi"' >> ~/.bash_profile
# bash_profileを読み込ませる
$ source ~/.bash_profile
# 登録できている事を確認する。
$ echo $EDITOR
$ RAILS_ENV=production bundle exec rails secret
Rails 프로덕션 환경의 secret_key_base 획득
끝에.
끝까지 읽어 주셔서 감사합니다
전직을 위해, 미경험의 상태로부터 Rails를 학습하고 있습니다. 올바른 지식을 꾸준히 착용하고 실력 있는 엔지니어가 되고 싶습니다. 계속해서 투고해 나가는 가운데, 그 때문에의 인풋도 필연적으로 늘어나, 성장에 연결될까라고 생각하고 있습니다.
지금 현재, 초보자라고 해서 변명은 할 수 없습니다만, 투고의 내용에 잘못되어 있는 곳이나, 덧붙여야 할 곳이 많이 있을까 생각하므로, 지적 받을 수 있으면 다행입니다. 이 기사를 읽어 주셔서 감사합니다.
Reference
이 문제에 관하여(【credentials】 CircleCI 테스트에서 오류! "ActiveRecord::StatementInvalid: Mysql2::Error: Table ‘〇〇’ doesn’t exist: SHOW FULL FIELDS FROM `〇〇`"), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/waniwaninowani/items/b58e5efda51af7fab1d3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)