【发布时间】:2016-05-28 21:35:21
【问题描述】:
目前,我有一个包含client_id 的users 表(所以,一个User belongs_to :client)。
我们需要支持与一个用户关联的多个客户端,因此我们实现了User has_and_belongs_to_many :clients 关联。为此,我们:
- 创建了一个新的
clients_users表,其中包含user_id和client_id列; - 从
users中删除了client_id。
现在,我们如何为我们最初在users 表中的每个client_id 自动创建HABTM 记录?我们不想丢失数据。
我不知道从哪里开始,因为 db:migrate 不应该涉及模型或它们之间的关联,并且在我的情况下执行原始查询可能会变得复杂。
【问题讨论】:
-
我不明白您如何拥有回滚功能。您进行了更改,然后
User有 2 个Client,其 id 为 2 和 4。您将如何将其回滚到用户的 belongs_to 中? -
最初,所有在
client_id中有内容的用户将只有一个关联的HABTM 客户端。为什么他们会有 2 个客户? -
因为有人用过系统,给了他们2,然后说一周后你想回滚。你会丢失数据。
-
好的,我明白了。你说得对。将从我的问题中删除回滚部分。
标签: ruby-on-rails postgresql database-migration