gpt4 book ai didi

python - 如何使用 Python 3 将数据库从 MySQL 复制和移动到 MSSQL,反之亦然?

转载 作者:行者123 更新时间:2023-11-30 22:48:47 25 4
gpt4 key购买 nike

我正在创建一个 Python 应用程序,它可以将数据库从 MySQL 复制和移动到 MSSQL,反之亦然。我已经完成了它的 GUI,我唯一的问题是复制和移动功能。是否有我可以在 Python 3 中使用的库或代码来实现这一点?

例如:

 --------------------
MySQL |MSSQL |
--------------------
database1|database4|
database2| |
database3| |
--------------------

复制数据库1到MSSQL

 --------------------
MySQL |MSSQL |
--------------------
database1|database4|
database2|database1|
database3| |
--------------------

将数据库2移动到MSSQL

 --------------------
MySQL |MSSQL |
--------------------
database1|database4|
database3|database1|
|database2|
--------------------

感谢您的帮助!

更新:

按照 Sergey 的给定链接,我遇到了这些代码的错误

except ProgrammingError, error: 
print(error)

raise SystemExit, 1 

说Python 3.4不支持这种语法

为我的更新找到答案:

Python 3.*

except ProgrammingError as error: 
print(error)

不过这个不太确定

raise SystemExit(1)

最佳答案

您可以使用 SQLAlchemy 做到这一点。基本上,过程如下:

  • 反射(reflect)源数据库中的表,创建代表源数据库的内存中 ORM 结构
  • 使用 .create_all() 在目标数据库中创建表。 SQLAlchemy 负责将源数据库的习语翻译成目标方言。
  • 从源数据库中读取数据并将其插入到目标数据库中。

这是我通过谷歌搜索“sqlalchemy puller”找到的一个脚本:https://gist.github.com/thoas/1589496 , 还有其他一些。

更新:我不确定您为什么会遇到您提到的错误,但一个明显的解决方法是修改 print_usage 函数:

def print_usage():
print """
Usage: -f source_server -t destination_server
-f, -t = driver://user[:password]@host[:port]/database

Example:-f oracle://someuser:PaSsWd@db1/TSH1 \\
-t mysql://root@db2:3307/reporting
"""

我还想指出,我没有编写该脚本(尽管我过去写过一些类似的脚本),所以我不能保证它没有错误或功能正常。不过,这看起来是一个不错的起点。

关于python - 如何使用 Python 3 将数据库从 MySQL 复制和移动到 MSSQL,反之亦然?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28761314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com