1

当我运行时heroku run rake db:migrate,我会收到此错误:

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这是有效的。但我需要运行我的迁移。

4

4 回答 4

3

这是您在运行 Rolify 和迁移时会看到的常见错误。

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

问题是 rails 会加载初始化程序文件,use_dynamic_shortcuts如果数据库尚未迁移,则会抛出错误。

于 2013-02-14T16:40:05.430 回答
0

听起来您可能在引用Role类的初始化程序(或类似的东西)中有代码 - 因为当环境启动时表不存在(即使您正在尝试设置表!)它会产生错误。

尝试删除引用 Role 类的代码,迁移数据库,然后将代码放回原处。

于 2012-10-01T14:32:12.947 回答
0

尝试运行

heroku pg:reset

它会尝试将您的数据库重置为正常状态。然后你可以迁移和播种。

如果您无法迁移,mybe 您的迁移不正确,请尝试应用架构:

heroku rake db:schema:apply
于 2012-10-01T11:40:20.163 回答
0

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

于 2012-10-01T11:24:37.500 回答