2013-01-03 86 views
0

我想調試我正在遷移我的數據庫的問題。rake db:migrate在查看遷移文件之外做什麼?

我有我的應用程序沒有問題中運行,它被推到Heroku的,跑rake db:migrate,並得到了錯誤

 
PG::Error: ERROR: relation "places" does not exist 
LINE 4: WHERE a.attrelid = '"places"'::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 = '"places"'::regclass 
AND a.attnum > 0 AND NOT a.attisdropped 
ORDER BY a.attnum 

我就覺得很奇怪的是,移民在當地罰款,但不是在遷移時服務器。我發現其他一些人也有類似的問題,但從來沒有發現任何人有解決方案。我在StackOverflow上找到的答案沒有被接受。經過幾個小時嘗試不同的事情之後,我想我會嘗試從頭開始創建一個新的heroku應用程序,並將我的應用程序推向它(對其他人來說),基本上都是從新開始的。

當我這樣做時,我得到了同樣的錯誤,但現在在wineries

奇怪的是,在Heroku的推薦下,我嘗試在本地創建一個新的數據庫,並運行我的遷移。

現在本地,我得到相同的錯誤,但在表admin_users

我很確定實際的遷移文件沒有錯,因爲每次運行遷移時,我都會得到一個不同的表,因此在某些方面會受到不同的遷移影響。

我試過去掉一些寶石,但仍然是同樣的錯誤。

rake:db是否在除遷移文件以外的任何文件之外查找?這可能是一個關係問題嗎?

有關如何解決此問題的其他建議?

回答

1

您是否正在訪問/使用您的遷移中的任何模型來執行任何數據更新?你是否在config/initializers中使用任何模型?耙db:遷移加載rails環境,所以如果你嘗試訪問一個不存在的模型,它會吐出這個錯誤...

+0

謝謝菲利普,我沒有任何東西在我的初始化,但你的路線是加載在環境中(它出現),事實證明,active_admin添加兩條線到''ActiveAdmin.routes(self) devise_for:admin_users,ActiveAdmin :: Devise.config'這是導致問題的路線。 – pedalpete

相關問題