2016-05-03 101 views
-1

我有一個Ruby on Rails應用程序,我想將其部署到Heroku上。出現一些錯誤,我認爲這是因爲腳手架順序。因此,我的意思是一個名爲提交的類首先被創建,但是這個類引用另一個名爲Users的類,它還沒有被創建。更改Ruby on Rails腳手架訂單

這是做耙分貝時出現的錯誤:遷移http://pastebin.com/R83a3rsN

而這些都是遷移文件和它們的文件名

我猜你的意思是:

http://pastebin.com/ig5nHjsj爲20160503205437_create_submissions

and

http://pastebin.com/q2jABiep for 201604281 01834_create_users

+1

請顯示您獲得的錯誤。這將解釋到底發生了什麼,所以沒有猜測。 –

+0

這是我在做耙機時顯示的錯誤:db migrate http://pastebin.com/R83a3rsN –

+0

請在代碼方面包含更多信息,或者可以包含h​​eroku日誌以糾正錯誤。 –

回答

0

這似乎不像腳手架錯誤本身。相反,這是一個遷移問題(這種腳手架碰巧產生)。

爲了修復問題,我可能只是做一個全新的遷移,其中包括您的應用程序在這個時間點需要的所有列。然後編輯create_table塊的順序來解決您的錯誤。

然後,您可以刪除其他遷移文件並運行dB:create或reset。

+0

create_table塊的順序應該是好的:http://pastebin.com/BYumTieQ這是模式.db 我也做過一個heroku pg:重置DATABASE_URL,但是當我運行heroku時運行rake db:migrate同樣的錯誤顯示:http:// pastebin。com/warU3WDE –

+0

您確定您正確理解模式嗎?您應該在重置數據庫之前刪除您的模式。模式在您運行遷移時生成。 –

2

您的分貝成員/遷移命名的文件夾...

20160424205437_create_submissions.db

只要將其重命名爲

20160503205437_create_submissions.db

,將其移動到列表的底部它將在最後執行。

+0

已經這樣做了,它一直在失敗。實際上,create_submissions.db實際上是在create_users.db下的,所以它是正確的。 –

0

這是遷移中的交叉依賴問題。在這種情況下,Submissions表預計Users表已經存在以便爲其聲明外鍵。

考慮在遷移中聲明Users表,在Submissions表之上聲明Users表。

+0

已經完成並且無法工作。這是我的schema.db,這是我想你正在討論的文件:pastebin.com/BYumTieQ –

+0

編輯你的schema.db文件不會有什麼區別。您的遷移無序,但您已定義它們。您是否可以在原始問題中包含包含用戶表和包含提交表的遷移文件的遷移文件的文件名和內容?文件名和內容對解決這個問題都很重要。 –

+0

我猜你的意思是: http://pastebin.com/ig5nHjsj爲20160503205437_create_submissions 和 http://pastebin.com/q2jABiep爲20160428101834_create_users –