【发布时间】:2015-10-19 09:54:18
【问题描述】:
在开发和生产中使用 Postgres 9.4 运行 Rails 4。我有一张随着时间的推移随着迁移而增长的大表。由于表上有许多不同的列,我想重新排序,以便更合理地对列进行分组。换句话说,一些列元素会根据它们捕获的信息自然地组合在一起。
我在stack overflow discussion 找到了关于在迁移中使用after: 对列重新排序(在SQL 中使用ALTER TABLE)的讨论。然后我继续设置迁移来做到这一点。运行迁移后,我注意到我的 schema.rb 文件没有改变。查看数据库中的列(postgres on development),那里也没有任何变化。
进一步的研究使我找到了Postgres wiki,它指出目前不支持在 Postgres 中更改列位置。
这不是关键任务,但它会让生活更轻松。我的问题是:
如果我只是将
schema.rb文件中的行向上或向下移动以便根据需要定位它们,这会导致任何问题吗?由于我希望使用 rake db:schema:load 来配置任何新数据库,因此这似乎不会破坏任何东西。此外,由于之前的迁移没有实质性改变(只是它们输出到 schema.rb 的列的顺序),所以一切都应该在内部保持一致,不是吗?
1234563李>
我的假设是,当我使用种子数据从头开始重建生产数据库时,它将使用架构结构以所需的顺序正确创建表。现在它不是一个真正的、为最终用户部署的数据库,所以这似乎不是一个问题。使用上面的选项 #1 似乎是最简单的解决方案,只要它不会破坏任何东西。
【问题讨论】:
标签: ruby-on-rails postgresql rails-migrations