【发布时间】:2011-09-07 12:54:00
【问题描述】:
我正在尝试将我的应用程序部署到 Heroku,我之前在我的 Windows 机器上做过,现在我正在使用 mac。
我是第一次尝试使用 Postgresql。
我的 Gemfile 中有以下内容:
gem 'pg'
编辑:
AndrewDavis-OSX:lunchbox ardavis$ rvm list
rvm rubies
=> ruby-1.9.2-p180 [ x86_64 ]
AndrewDavis-OSX:lunchbox ardavis$ heroku rake db:migrate
rake aborted!
/app/config/initializers/session_store.rb:3: syntax error, unexpected ':', expecting $end
App::Application.config.session_store :cookie_store, key: '_app_session'
^
(See full trace by running task with --trace)
(in /app)
如您所见,我正在运行 ruby 1.9.2。我的heroku迁移出现错误。
编辑 2:
刚刚使用 Rails 3.1.rc1 创建了一个全新的 Rails 应用程序。我将 gemfile 设置为包含
组:生产做 宝石'therubyracer-heroku','0.8.1.pre3' 宝石'pg' 结束
我做了一个快速的 git init,提交,然后是 'heroku create' 和 'git push heroku master'。这些都工作得很好。但是问题是当我尝试“heroku rake db:migrate”时。我收到与您在上面看到的相同的错误。
临时修复编辑:
所以...如果我将 config/initializers/session_store.rb 更改为
App::Application.config.session_store :cookie_store, key: '_app_session'
到
App::Application.config.session_store :cookie_store, :key => '_app_session'
并从
更改我的 config/initializers/wrap_parameters.rbActionController::Base.wrap_parameters format: [:json]
到
ActionController::Base.wrap_parameters :format => [:json]
然后我就可以执行“heroku rake db:migrate”了。有人愿意解释为什么这在本地以原始方式起作用,而不对冒号/哈希进行任何修改吗?原来的方式是通过'rails new myApp'生成的默认值
【问题讨论】:
-
是的,Heroku 默认堆栈是 1.8.7。这可能会在 Rails 3.1 发布后发生变化,因为 1.8.7 在 3.1 中被视为旧版。
-
我当然希望如此。我现在正在使用 3.1.rc1。
标签: ruby-on-rails deployment heroku initializer ruby-on-rails-3.1