DigitalOcean - 预编译资产上的 cap staging 部署错误

DigitalOcean - cap staging deploy error on precompiling assets

当我 运行 cap staging deploy:check 它成功了。当我 运行 cap staging deploy 它成功直到 deploy:assets:precompile 我得到这个错误:

 01 ~/.rvm/bin/rvm default do bundle exec rake assets:precompile
 01 rake aborted!
 01 ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  relation "links" does not exist
 01 LINE 1: SELECT "links".* FROM "links"

谷歌搜索后,我认为问题在于它试图在创建表之前创建关系。从那以后,我尝试了很多解决方案,包括将 config.assets.initialize_on_precompile = false 放在 application.rb 中,但其中 none 有效。

我迫切需要帮助。谢谢!

问题是 asset:precompile 任务启动了完整的 Rails 环境。你有任何初始化程序或使用 Link 模型的东西吗?

肮脏的解决方法:

ssh 到登台服务器,转到 :deploy_path 你在 capistrano 的配置中设置,然后在上一个发布文件夹中。之后手动 运行 RAILS_ENV=staging bundle exec rake db:migrate.