2012-10-01 72 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會拋出一個錯誤。

相關問題