我是一个将应用程序推向生产的新手。我选择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
的表,该网站在开发方面非常有效。
答案 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才能使其正常工作。