【问题标题】:DigitalOcean - cap staging deploy error on precompiling assetsDigitalOcean - 预编译资产上的暂存部署错误
【发布时间】:2018-10-16 16:49:12
【问题描述】:

当我运行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 中,但它们都不起作用。

我迫切需要帮助。谢谢!

【问题讨论】:

    标签: deployment ruby-on-rails-5 capistrano rake-task


    【解决方案1】:

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

    肮脏的解决方法:

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

    【讨论】:

    • 我没有使用我的 Link 模型的任何初始化程序。我确实有这个 -> stackoverflow.com/questions/52729750/…
    • 我在服务器上也没有应用程序文件/文件夹,因为所有这些都是在 cap staging deploy 操作中创建的,所以我无法 cd 到 :deploy_path 并运行该命令。我应该继续将我的存储库克隆到服务器上,然后再这样做吗?这会导致 capistrano 出现任何问题吗?这是我第一次像这样部署这样的 capistrano,所有这些对我来说都是全新的
    • routes.rb 是问题所在。我注释掉了这些行,cap staging deploy 运行良好。感谢@vladimir-dimitrov 帮助我重新思考其中的一些问题!
    猜你喜欢
    • 1970-01-01
    • 2014-02-05
    • 2013-03-26
    • 1970-01-01
    • 1970-01-01
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多