是否可以在不更改阶段的情况下将rails应用程序部署到Heroku?

时间:2012-09-20 20:04:37

标签: ruby-on-rails ruby

我一直遇到一个问题,将代码推送到Heroku并且阶段更改会破坏我的应用程序。它在本地工作,但当我推送到Heroku时,我注意到应用程序切换到生产阶段并中断。

有没有办法只使用一个阶段,即在我的生产阶段在当地发展?我不需要版本历史记录。或者,我可以简单地将我的开发阶段推向Heroku吗?

在本地,我正在运行OSX 10.8.1,Ruby 1.9.3p194和Rails 3.2.8。

该应用程序是一个基于我一直在学习和拼凑的东西的最小博客。它利用SQLite进行存储。

2 个答案:

答案 0 :(得分:0)

如果您想在本地计算机上尝试生产模式,请按以下方式启动服务器:

rails server -e production

希望这会让你在赶到Heroku之前抓住一些陷阱。

安德鲁的回答很关键。为方便起见,在开发模式中缓存较少。生产模式运行效率更高,但将是一个重大的痛苦。 (例如,您将不断需要重新加载缓存并重新编译资产。)您不希望在生产中运行开发模式,因为您的应用程序运行速度非常慢。

希望这可以让您了解在运行一个环境而不是另一个环境之间进行权衡。权衡因素主要取决于发展的便利性和绩效。

答案 1 :(得分:0)

没有看到为什么你的应用程序在推送到Heroku时会破坏,我猜这是几个问题之一。

  • 首先,您必须在gem 'pg'Gemfile组中使用Postgres作为您的数据库,例如::production

  • 其次,必须预编译资产或必须更改配置设置以允许在不初始化应用程序的情况下编译资产:

    rake assets:precompile

    config.assets.initialize_on_precompile = false添加到您的config/environments/production.rb文件中。

我通常使用rake assets:precompile,然后将资产添加到我的git仓库,尽管很多人会争辩(我同意)将这些文件添加到您的仓库通常不是最好的想法。< / p>