这是我想要做的事情(MySQL示例):
我遇到#4步问题。
例如,我将table1.sql拆分为3个文件: table1_a.sql 和 table1_b.sql 和 table1_c.sql 。 如果在新转储中有新的记录很好 - 它只是添加到table1_b.sql。
但是如果table1_a.sql中有已删除的记录,则所有下一条记录都将移动,git会将文件table1_b.sql和table1_c.sql视为已更改,但不行。
基本上它破坏了在SCM中保留sql备份的整个想法。
我的问题:如何将大的sql转储文件拆分成小块并在原始文件中维护每条记录,尽管后来的其他记录被删除了?
答案 0 :(得分:0)
根本不要分开它们。或者按PK值的范围拆分它们。或者将它们拆分为每个文件1 db行(并在tablename之后命名文件+主键的内容)。
(除了更明显的XY回答,这是我本能的反应。)
答案 1 :(得分:0)
要在终端中执行500行的文件中拆分SQL转储:
$ split -l 5000 hit_2017-09-28_20-07-25.sql dbpart-