将应用程序推送到heroku时出现奇怪的错误

时间:2016-01-19 12:28:01

标签: ruby-on-rails heroku

我是一个将应用程序推向生产的新手。我选择Heroku作为我的生产环境。当我尝试git push heroku master时,我收到以下错误日志。关于可能导致这种情况的任何想法?

remote: -----> Preparing app for Rails asset pipeline
remote:        Running: rake assets:precompile
remote:        PG::UndefinedTable: ERROR:  relation "steps" does not exist
remote:        LINE 5:                WHERE a.attrelid = '"steps"'::regclass
remote:        ^
remote:        :               SELECT a.attname, format_type(a.atttypid, a.atttypmod),
remote:        pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
remote:        FROM pg_attribute a LEFT JOIN pg_attrdef d
remote:        ON a.attrelid = d.adrelid AND a.attnum = d.adnum
remote:        WHERE a.attrelid = '"steps"'::regclass
remote:        AND a.attnum > 0 AND NOT a.attisdropped
remote:        ORDER BY a.attnum
remote:        rake aborted!

我的迁移文件中定义了一个名为steps的表,该网站在开发方面非常有效。

3 个答案:

答案 0 :(得分:3)

尝试运行该命令 heroku run rake db:migrate 然后重新推,看它是否有效。

答案 1 :(得分:2)

如@sheltond所述,Heroku要求你安装几个宝石。如果您还没有这样做,请将以下内容添加到您的gemfile并运行bundler

group :production do
    gem 'pg'
    gem 'rails_12factor'
end

答案 2 :(得分:1)

如果您发现无法在Heroku上运行“rake”,则应该能够在本地运行它,如果您正确设置了环境。

通常,当您部署指向为应用程序配置的postgres数据库时,Heroku会覆盖应用程序的数据库设置。

但是,如果使用“heroku config”,则可以查看数据库设置。如果将这些复制到“生产”配置下的config / database.yml中,您应该可以运行如下命令:

RAILS_ENV=production rake db:migrate

它应该更新Heroku postgres数据库。

您需要确保在本地安装了postgres数据库gems才能使其正常工作。