我有同一应用程序的 2 个 MariaDB 数据库架构。一个是应用程序 V1 的架构,另一个是 V2 的架构。
V2架构有大量测试数据。我正在设置应用程序 V1 的测试环境,它需要 V1 数据库架构,但希望将所有测试数据包含在 V2 架构中。
大多数情况下,V2 架构是 V1,但有更多的列和表。
有没有办法通过告诉工具(例如 mysqldump)我希望它使用 V1 表结构来从 V2 模式导出数据,以便它忽略丢失的列和表。
最佳答案
Mysqldump 没有您所描述的选项。
有一个选项--insert-ignore
,它会导致mysqldump的输出包含一系列INSERT IGNORE
语句。但这不会达到您想要的效果。
INSERT IGNORE 的结果是,如果 INSERT
失败,它会跳过这些行。但您希望它插入行,而不在 V2 转储中插入额外的列。
恐怕您的选择是:
在 V2 数据库上更改 TABLE 以匹配 V1 架构的表和列,然后转储数据。
恢复 V2 数据库,包括额外的表和列,然后通过 ALTER TABLE 删除多余的表和列。
编写您自己的工具,其工作方式类似于 mysqldump,只不过您需要指定每个表要转储的列。
关于mysql - MariaDB,使用降级版表结构导出数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56928339/