这是我想要做的(MySQL 示例):
- 仅转储结构 - structure.sql
- 转储所有表数据 - data.sql
- 拆分 data.sql 并将每个表的数据信息放在单独的文件中 - table1.sql、table2、sql、table3.sql ... tablen.sql
- 将每个表拆分为较小的文件(每个文件 1k 行)
- 提交本地 git 存储库中的所有文件
- 将所有目录处理到远程安全服务器
#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 转储文件拆分为小块并维护原始文件中的每条记录?