Sqlalchemy - copy data from a database to another database with exactly same schema

问题

我在 2 台 docker 机器中有 2 个 mysql 数据库与 sqlalchemy 连接。

它们内部都有相同的架构和数据。

现在我想将数据库1中的数据复制到另一个数据库中,将2个mysql数据库合并为1。可以这样做吗?

回答1

是的你可以:

在要复制的数据库上运行此命令:

mysqldump --no-create-info {yourdbname} > {yourdbname}.sql

然后在您要导入的数据库上:

mysql {yourdbname} < {yourdbname}.sql

您可能会遇到主键和/或重复记录的问题。 遗憾的是,从那时起,您将不得不生成 SQL 以使用更改的主键导出数据,同时保持外键关系完好无损。

这第二个复杂问题需要一个过程来查询信息模式:

  • 从信息模式中选择表名
  • 使用信息模式选择主键
  • 为每个表选择 max(primary key)。
  • 使用信息模式创建 SELECT 查询,在其中您将先前的 max(primary key) 添加到主键,并将输出写入数据文件。

在相关的外键上,您还必须从相关表中添加相同的最大(主键)值。 编写代码会多一些,但是 50-80 行的存储过程应该可以完成。


更多相关内容:请点击查看