sqlite3更改为pg中断部署到heroku的应用程序

时间:2012-07-26 17:41:22

标签: ruby-on-rails ruby-on-rails-3

好的,所以我在使用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'宝石改为'pg'。我用sqlite3开发了应用程序,所以我认为这是导致错误的原因。试图验证这一点,我将'pg'改回'sqlite3'并运行“bundle install”。但是,在这样做时,我收到了这个错误:

Gemfile syntax error:
  gem 'sass-rails',   '~> 3.2.3'

如果我改回'pg',这个错误就会消失。拜托,有人在这里帮助新手。为什么当我将我的应用程序部署到heroku时它不起作用,我在'heroku日志中找到的错误的含义是什么。任何和所有输入都表示赞赏。

1 个答案:

答案 0 :(得分:1)

你跑吗

heroku run rake db:migrate

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