2012-10-01 86 views
1

当我运行heroku run rake db:migrate,我会得到这个错误:Heroku的 - 不工作“耙”命令:PG ::错误:错误:关系“角色”不存在

rake aborted! 
PG::Error: ERROR: relation "roles" does not exist 
LINE 4:    WHERE a.attrelid = '"roles"'::regclass 
             ^
:    SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull 
       FROM pg_attribute a LEFT JOIN pg_attrdef d 
       ON a.attrelid = d.adrelid AND a.attnum = d.adnum 
      WHERE a.attrelid = '"roles"'::regclass 
       AND a.attnum > 0 AND NOT a.attisdropped 
      ORDER BY a.attnum 

Tasks: TOP => db:reset => environment 

我已经还尝试重置数据库:heroku run rake db:reset但我得到了与上面相同的错误。它看起来像命令heroku rake不起作用。此外,我试图将我的整个本地数据库移到Heorku - heroku db:push - 这是行得通的。但我需要运行我的迁移。

+0

可能的重复[失败的生产/ heroku:WHERE a.attrelid =''schools'':: regclass](http://stackoverflow.com/questions/8784766/failing-on-production-heroku-where- a-attrelid-schoolsregclass) – givanse

回答

0

你确定你承诺一切吗?尝试git status然后git add .然后再次执行git push heroku

+0

刚刚尝试过,但不幸的是发生了同样的错误。 – user984621

0

尝试运行

heroku pg:reset 

它会尝试将数据库恢复到一个正常的状态。然后你可以迁移和种子。

如果你不能迁移,mybe你的迁移是不正确的,尝试应用架构:

heroku rake db:schema:apply 
+0

我得到了'Resetting HEROKU_POSTGRESQL_JADE(DATABASE_URL)... done' - 然后我尝试运行我的迁移,并再次出现相同的错误消息。 – user984621

+0

尝试应用架构而不是从头开始迁移(编辑) – rewritten

0

这听起来像你可能必须在初始化代码(或类似的东西)被引用Role类 - 因为在环境启动时表格不存在(即使您尝试设置表格!)它会生成一个错误。

尝试删除代码引用角色类,迁移数据库,然后将代码回。

3

这是一个常见的错误运行Rolify和迁移时,你会看到的。

你需要检查你的Rolify初始化文件config/initializers/rolify.rb。如果命令config.use_dynamic_shortcuts未注释,则对其进行注释。推进您的更改,然后运行rake db:migrate。成功迁移后,您可以返回并取消注释该行。

问题是rails加载初始化文件,如果数据库还没有被迁移,use_dynamic_shortcuts会抛出一个错误。

相关问题