我有2个相同应用程序的MariaDB数据库架构。一个是应用程序V1的架构,另一个是应用程序V2的架构。
V2模式具有大量测试数据。我正在设置应用程序V1的测试环境,该环境需要V1数据库架构,但希望将所有测试数据都包含在V2架构中。
大多数情况下,V2模式是V1,其中包含更多的列和表。
是否可以通过告诉工具(例如mysqldump)我希望它使用V1表结构来从V2模式导出数据,因此它会忽略丢失的列和表。
答案 0 :(得分:0)
Mysqldump没有您所描述的选项。
有一个选项--insert-ignore
使mysqldump的输出包含一系列INSERT IGNORE
语句。但这不会满足您的要求。
INSERT IGNORE
的结果是,如果INSERT
失败,则会跳过这些行。但是,您希望它插入行,而在V2转储中没有多余的列。
恐怕您的选择之一是:
ALTER TABLE匹配V1模式的表和列,然后转储数据。
还原V2数据库,包括多余的表和列,然后还原ALTER TABLE来删除多余的表和列。
编写您自己的工具,该工具的工作方式类似于mysqldump,不同之处在于您需要指定每个表要转储的列。
答案 1 :(得分:0)
这可能有效:
CREATE VIEWs
用于每个V1表结构。
mysqldump
...仅指定要转储的视图。