我正在使用 rails v3.0.9 和 Mysql 数据库。
我正在使用现有数据迁移表。
我有用户表,所有其他表都包含 user_id 列,现在我需要将用户分成两个(用户和客户)表,
所以我需要使用现有用户记录迁移新客户表,其中用户键入客户
我需要创建一个客户表并将用户类型为客户的用户记录的 id 设置为客户,这将很容易而不是通过检查每个记录与用户的用户类型来迁移许多其他表(仅供客户使用)并分配客户表的新 ID。
表格看起来像
用户表:
id | name | ...
------------------------------
1 | aaa | ...
2 | bbb | ...
4 | ddd | ...
6 | fff | ...
客户表
id | name | ...
-------------------------------
3 | ccc | ...
5 | eee | ...
7 | ggg | ...
当我迁移用户现有数据时
在我的迁移文件中
def up
create_table(:customers) do |t|
t.string :name
end
User.joins(:user_type).where(:user_type => {:type_name => 'customer'}).find_in_batches(:batch_size => 100){ |users|
users.each {|user|
customer = Customer.new
customer.id = user.id
customer.name = user.name
customer.save(:validate => false)
}
}
end
也试过
Customer.create!(:id => user.id) instead of save method
它是否正确?
有什么方法可以分配主 id 吗?
如果我错了,请给我一些建议以正确的方式做...