【问题标题】:MariaDB, export data using degraded version of table structureMariaDB,使用降级版本的表结构导出数据
【发布时间】:2019-07-08 04:12:19
【问题描述】:

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

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

大多数情况下,V2 架构是具有更多列和表的 V1。

有没有办法通过告诉工具(例如 mysqldump)我希望它使用 V1 表结构来从 V2 模式导出数据,以便它忽略丢失的列和表。

【问题讨论】:

    标签: mysql database mariadb


    【解决方案1】:

    Mysqldump 没有你描述的选项。

    有一个选项--insert-ignore 导致mysqldump 的输出包含一系列INSERT IGNORE 语句。但这不会做你想要的。

    INSERT IGNORE 的结果是,如果 INSERT 失败,它会跳过这些行。但是您希望它在 V2 转储中插入行,而不需要额外的列。

    恐怕您的选择是以下之一:

    • 在 V2 数据库上更改 TABLE 以匹配 V1 架构的表和列,然后转储数据。

    • 恢复 V2 数据库,包括额外的表和列,然后 ALTER TABLE 删除那些额外的。

    • 编写您自己的工具,其工作方式类似于 mysqldump,但您可以指定要为每个表转储哪些列。

    【讨论】:

      【解决方案2】:

      这可能有效:

      CREATE VIEWs 用于每个 V1 表结构。

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多