Scr*_*cro 2 postgresql ruby-on-rails rails-migrations
在开发和生产中使用Postgres 9.4运行Rails 4.我有一张随着时间的推移而逐渐迁移的大桌子.由于表中有许多不同的列,我想重新排序,以便更加逻辑地对列进行分组.换句话说,一些列元素基于它们捕获的信息自然地组合在一起.
在此堆栈溢出讨论中,我发现了有关在after:
迁移中使用以重新排序列(ALTER TABLE
在SQL中使用)的讨论.然后我继续设置迁移来做到这一点.运行迁移后,我注意到我的schema.rb文件没有更改.查看数据库中的列(开发后的postgres),也没有任何改变.
进一步的研究使我进入了Postgres维基,该维基表示目前不支持改变Postgres的柱位.
这不是关键任务,但它会让生活更轻松.我的问题是:
如果我只是schema.rb
向上或向下移动文件中的行以便根据需要定位它们,那会导致任何问题吗?因为我希望使用rake db:schema:load来配置任何新数据库,所以看起来不应该破坏任何东西.此外,由于以前的迁移没有实质性改变(只是它们输出到schema.rb的列的顺序),一切都应该是内部一致的,不是吗?
如果这是一个坏主意,我可以简单地回到早期的迁移,为after: :some_column
每个列元素添加语法,以便他们正确设置schema.rb文件?
我的假设是,当我从头开始使用种子数据重建我的生产数据库时,它将使用模式结构以所需顺序正确创建表.现在它不是一个真正的,部署了最终用户的数据库,所以它似乎不是一个问题.使用上面的选项#1似乎是最简单的解决方案,只要它不会破坏任何东西.
许多刚接触postgresql的人经常会问是否支持改变表中的列位置.目前它没有 ; 如果要更改列位置,则必须重新创建表,或添加新列并移动数据. 允许对列位置进行重新排序的想法不是postgresql开发人员反对的,更是一个没有人上前去做这项工作的情况.
schema.rb
向上或向下移动文件中的行以便根据需要定位它们,那会导致任何问题吗?没有.它对列顺序没有任何作用PG
.
after: :some_column
每个列元素添加语法,以便他们正确设置schema.rb文件?after: :some_column
如果使用,选项不会对列顺序执行任何操作 PG
归档时间: |
|
查看次数: |
1396 次 |
最近记录: |