ruby-on-rails – 在Rails迁移中,是否可以指示新添加的列应该在
发布时间:2020-12-16 23:32:18 所属栏目:百科 来源:网络整理
导读:假设我在Rails迁移中创建了一个表,指定省略ID列: create_table :categories_posts,:id = false do |t| t.column :category_id,:integer,:null = false t.column :post_id,:null = falseend 后来我决定将ID列添加为主键,因此我创建了一个新的迁移: class Ch
假设我在Rails迁移中创建了一个表,指定省略ID列:
create_table :categories_posts,:id => false do |t| t.column :category_id,:integer,:null => false t.column :post_id,:null => false end 后来我决定将ID列添加为主键,因此我创建了一个新的迁移: class ChangeCategoriesToRichJoin < ActiveRecord::Migration def self.up add_column :categories_posts,:id,:primary_key end def self.down remove_column :categories_posts,:id end end 但是当我迁移后查看表格时,它看起来像这样: category_id post_id id id列位于表中的最后一个位置,而通常id列是第一个. 有没有办法更改ChangeCategoriesToRichJoin迁移以坚持在表中的category_id列之前创建的id列? 或者我是否需要删除表并在“创建表”定义中添加列? 解决方法
我自己无法按顺序放置列,但是使用Rails可以回滚,更改旧的迁移文件以按所需顺序添加新列,然后重新迁移旧迁移,包括新字段.它并不完全理想,但能够轻松迁移和回滚,如果您的OCD足以要求列顺序,它可以工作. :P
我不是专家,但我已经阅读了很多Rails文档(以及最近的文档),并且无法回想起为此找到解决方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |