0

好的,所以我正在使用 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 日志”中发现的错误是什么意思。任何和所有输入表示赞赏。

4

1 回答 1

1

你跑了吗

heroku run rake db:migrate

因为否则您的数据库将没有表,因此不会有关联。

于 2012-07-26T18:07:25.493 回答