gpt4 book ai didi

ruby-on-rails - 在 Heroku 上预编译 Assets 时如何普遍跳过数据库接触

转载 作者:太空狗 更新时间:2023-10-30 01:38:47 25 4
gpt4 key购买 nike

我正在将 Rails 3.1 应用程序部署到 Heroku 的 Cedar 堆栈。用Heroku Cedar and Rails 3.1 ,您可以自己在本地编译 Assets ,让 Heroku 在您推送时编译它们(在“slug 编译”期间),或者让它们在应用程序运行时即时编译。我想做中间选项,让 Heroku 预编译 Assets 。

当 Heroku 运行 assets:precompile 任务时,它会出错 "could not connect to server"因为该应用程序正在尝试连接到数据库,但在 slug 编译的那个阶段没有可用的数据库。此时缺少数据库连接是意料之中的,也是不可避免的。我正在寻找一种超越它的方法,因为数据库连接对于 Assets 预编译并不重要。

我的应用程序中尝试连接到数据库的部分是 Devise。在 routes.rb 中有一个 devise_for :users 行想要查看用户模型。

我可以只编写一个 rake 任务,将 devise_for stub 并使其成为 assets:precompile 的先决条件。我认为这会解决我的问题,但我正在寻找一个更通用的解决方案,我可以在 任何 Heroku 上遇到此问题的 Rails 3.1 应用程序上使用它。

有没有什么东西可以消除数据库连接错误,同时仍然运行足以生成路线和 Assets 路径的应用程序?

显然,如果一个应用程序需要在启动期间读取/写入数据,我们不能 stub ,但我们可以自动伪造每个 ActiveRecord 模型吗?

最佳答案

将此添加到 config/application.rb

config.assets.initialize_on_precompile=false                                                  

我花了一些时间来寻找它...将它添加到 config/environments/*.rb 没有用

更新:它不适用于 rails 4

关于ruby-on-rails - 在 Heroku 上预编译 Assets 时如何普遍跳过数据库接触,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7430578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com