好的,所以我正在使用 Rails 第 4 版(rails 3.2+)进行敏捷 Web 开发,我在第 16 章,其中涉及部署。我大部分时间都在跟进,但鉴于我想使用 heroku,我决定继续尝试将我的应用程序部署到 heroku。按照以下说明操作:https : //devcenter.heroku.com/articles/rails3 我开始部署heroku。但是,当我去访问该应用程序时:
heroku open
我遇到了这个错误:
We're sorry, but something went wrong.
所以运行后:
heroku logs
我意识到这是导致问题的错误:
2012-07-25T19:41:16+00:00 app[web.1]: ActiveRecord::StatementInvalid (PG::Error: ERROR: relation "carts" does not exist
2012-07-25T19:41:16+00:00 app[web.1]: WHERE a.attrelid = '"carts"'::regclass
2012-07-25T19:41:16+00:00 app[web.1]: FROM pg_attribute a LEFT JOIN pg_attrdef d
2012-07-25T19:41:16+00:00 app[web.1]: : SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
2012-07-25T19:41:16+00:00 app[web.1]: AND a.attnum > 0 AND NOT a.attisdropped
2012-07-25T19:41:16+00:00 app[web.1]: ORDER BY a.attnum
2012-07-25T19:41:16+00:00 app[web.1]: ):
现在,在遵循 heroku 说明的同时,我只修改了我的 gemfile 中的两件事。首先我改变了:
gem 'sqlite3'
至:
gem 'pg'
我还补充说:
ruby '1.9.3'
在文件的顶部。但是,由于错误位于“PG”,我认为错误出现在 b/c 我将“sqlite3”gem 更改为“pg”。我用 sqlite3 开发了这个应用程序,所以我认为这是导致错误的原因。为了验证这一点,我将“pg”改回“sqlite3”并运行“bundle install”。但是,这样做后,我收到了这个错误:
Gemfile syntax error:
gem 'sass-rails', '~> 3.2.3'
如果我改回“pg”,这个错误就会消失。拜托,有人在这里帮助一个新手。为什么当我将我的应用程序部署到 heroku 时它没有工作,我在“heroku 日志”中发现的错误是什么意思。任何和所有输入表示赞赏。