MariaDB,使用降级的表结构版本导出数据

时间:2019-07-08 04:12:19

标签: mysql database mariadb

我有2个相同应用程序的MariaDB数据库架构。一个是应用程序V1的架构,另一个是应用程序V2的架构。

V2模式具有大量测试数据。我正在设置应用程序V1的测试环境,该环境需要V1数据库架构,但希望将所有测试数据都包含在V2架构中。

大多数情况下,V2模式是V1,其中包含更多的列和表。

是否可以通过告诉工具(例如mysqldump)我希望它使用V1表结构来从V2模式导出数据,因此它会忽略丢失的列和表。

2 个答案:

答案 0 :(得分:0)

Mysqldump没有您所描述的选项。

有一个选项--insert-ignore使mysqldump的输出包含一系列INSERT IGNORE语句。但这不会满足您的要求。

INSERT IGNORE的结果是,如果INSERT失败,则会跳过这些行。但是,您希望它插入行,而在V2转储中没有多余的列。

恐怕您的选择之一是:

    在V2数据库上
  • ALTER TABLE匹配V1模式的表和列,然后转储数据。

  • 还原V2数据库,包括多余的表和列,然后还原ALTER TABLE来删除多余的表和列。

  • 编写您自己的工具,该工具的工作方式类似于mysqldump,不同之处在于您需要指定每个表要转储的列。

答案 1 :(得分:0)

这可能有效:

CREATE VIEWs用于每个V1表结构。

mysqldump ...仅指定要转储的视图。