2016-05-03 97 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 –