ruby-on-rails - 在 Capistrano 运行期间 Rails db:migrate 命令失败
问题描述
我已经使用 Capistrano 设置服务器并且一切正常,但我注意到它没有运行迁移,所以我添加了 asrequired 'capistrano/migrations'
现在它正在执行但它一直失败我已经设置了环境变量,而且我过去也这样做了我从来不需要执行此附加步骤。但是在 Capistrano 3.16 中,我遇到了这个问题。这是我在 rails 6 项目中使用的 gem。
gem 'capistrano', '~> 3.16'
gem 'capistrano-bundler', '~> 2.0'
gem 'capistrano-rails', '~> 1.6'
gem 'capistrano-chruby', '~> 0.1.2'
我的 Capfile
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/chruby'
require 'capistrano/bundler'
require "capistrano/scm/git"
install_plugin Capistrano::SCM::Git
require 'capistrano/rails/migrations' # I added to migration run
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
我的 config/deploy.rb 文件
lock '~> 3.16.0'
set :application, 'warehouse'
set :repo_url, 'git@github.com:kamalpanhwar/warehouse.git'
set :passenger_restart_with_touch, true
set :deploy_to, '/home/deploy/warehouse'
append :linked_files, 'config/master.key'
append :linked_files, 'config/credentials.yml.enc'
append :linked_files, 'config/database.yml'
set :chruby_ruby, 'ruby-2.7.2'
after "deploy", "deploy:migrate"
以下是我的 production.rb 文件
set :stage, :production
set :rails_env, :production
set :branch, 'production'
set :migration_role, :app
set :user, "deploy"
server 'dwh.actionplanner.com', user: 'deploy', roles: %w{app db web}
它给了我以下错误
01 /usr/local/bin/chruby-exec ruby-2.7.2 -- bundle exec rake db:migrate
01 rake aborted!
01 ActiveRecord::ConnectionNotEstablished: fe_sendauth: no password supplied
但是当我使用命令在生产上运行迁移时,当我添加 ENV_RAILS=production 时它工作正常,我还添加了该环境变量。如果我像这样运行上面的错误命令
/usr/local/bin/chruby-exec ruby-2.7.2 -- bundle exec rake db:migrate RAILS_ENV=production
它工作正常,任何建议为什么会发生这种情况,因为上次我用 RVM 进行了很少的部署并且它工作得很好,但是这个我得到了这个错误。我在这里使用 chruby 不确定是不是因为它。但似乎错误与 RAILS_ENV 有关,但我已经在部署配置中设置环境。
解决方案
推荐阅读
- mysql - 导入大 sql 文件以 [ERROR_RDBMS] 退出状态 1 结束
- intellij-idea - 在 Intellij IDEA 中实现方法时 org.jetbrains.annotations.NotNull 而不是 javax.annotation.Nonnull
- javascript - 仅在具有多个地图的 web 中的最后一张地图上显示地图标记
- flutter - 使用 Flutter 的动画包进行导航时出现重复的全局键错误
- javascript - 如何在邮递员中测试和比较以前的值和新值?
- python - 使用 pybind11 和 pytorch 在 C++ 中运行 python 时出现无效指针错误
- json - 使用 powershell 部署 Azure Json 策略时出错
- c++ - Valgrind 忽略输出中的模板
- pdf - ng2-pdfjs-viewer:PDF全黑
- python - 当列可能包含 NaT 时,将 pandas 中两个时间列之间的差异计算为不包括周末的新列