2012-01-28 91 views
4

我创建了一个简单地添加新列的迁移,但我希望在created_at和updated_at列之前添加它,是否有方法可以指定in新列创建的位置?如何在rails 3.x迁移中更改新列的位置

我搜索,只发现有人说在add_column中使用:after选项,但它什么也没做。然后我看着rails api文档,发现没有这样的选项。

+1

为什么这很重要? 我对an:after选项一无所知,但如果您仍在开发中,并且您没有丢失存储在表中的数据的问题,那么您可以始终删除该表,并从头开始创建它属性,而不需要迁移来添加某些列。 – Ashitaka 2012-01-28 16:07:07

+0

出于好奇:除了桌子的视觉可读性之外,它对水平有没有影响? – 2012-01-28 17:45:04

+0

我希望它具有更好的桌面视觉可读性,但在搜索解决方案时,我发现了一些关于性能效果的博客文章 – 2012-01-28 17:51:22

回答

5

选项后很适合我

add_column :table_name, :column_name, :type, :after => :column_name 

也期待在this question

+0

我试过:后选项,并在数据库/ schema.rb和sqlitebrowser我看到没有区别。 (当然,重置数据库和运行迁移后) 我的开发环境是rails 3.2.1和sqlite – 2012-01-28 17:56:24

+0

做的:after选项仅适用于MySQL吗? – 2012-01-28 21:36:28

+0

似乎是这样,你使用Postgres吗?尝试原始SQL在迁移 – 2012-01-28 21:37:25