我用postgresql。在db中,我有重要的元素:
|---------| |------------|
| account | | calendar |
|---------| |------------|
| id |1--*| account_id |
|---------| | id |
|------------|这一部分必须是ManyToMany关系:
|---------| |------------------| |----------|
| account | | account_calendar | | calendar |
|---------| |------------------| |----------|
| id |1--*| account_id | |-1| id |
|---------| | calendar_id |*-| |----------|
|------------------|我提供了更新脚本:
CREATE TABLE account_calendar_relation (
account_id BIGINT REFERENCES account_table,
calendar_id BIGINT REFERENCES calendar
);
ALTER TABLE calendar
DROP CONSTRAINT calendar_account_id_fkey,
DROP COLUMN account_id;此脚本正确地更改db-schema结构,但丢失了重要信息(日历和现有数据帐户之间的映射)。
如何通过保存calendar和account之间的现有映射来改进迁移脚本?
数据示例
输入数据:
account | id
1
2
calendar | id | account_id
1 | 1
2 | 1预期结果:
account | id
1
2
calendar | id
1
2
account_calendar | account_id | calendar_id
1 | 1
1 | 2但在实际结果中,account_calendar表是空的(因为没有动态总体)。
发布于 2018-04-12 23:59:45
在CREATE TABLE account_calendar_relation之后和ALTER TABLE calendar之前将下面的SQL插入到迁移脚本中
INSERT INTO account_calendar_relation(account_id,calendar_id)
SELECT account_id,id FROM calendar;发布于 2018-04-12 17:04:49
如何通过保存日历和帐户之间的现有映射来改进迁移脚本?
您需要在表创建查询之后和alter查询之前执行insert查询。
https://stackoverflow.com/questions/49801312
复制相似问题