当我运行 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
- 这正在工作。但我需要运行我的迁移。
最佳答案
这是您在运行 Rolify 和迁移时会看到的常见错误。
您需要检查您的 Rolify 初始化文件 config/initializers/rolify.rb
。如果命令 config.use_dynamic_shortcuts
未被注释,则对其进行注释。推送您的更改,然后运行 rake db:migrate
。成功迁移后,您可以返回并取消注释该行。
问题是 rails 加载初始化文件,如果数据库尚未迁移,use_dynamic_shortcuts
将抛出错误。
关于ruby-on-rails - Heroku - 不起作用 "rake"命令:PG::错误:错误:关系 "roles"不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12672229/