1

我正在处理将 mysql 数据库转移到 postgres 数据库。我已阅读此处提供的所有文章,以及阅读stackoverflow 上提供的一些解决方案。推荐的工具似乎对我不起作用。这两个数据库都是由 Django 的 syncdb 生成的,尽管 postgres db 目前或多或少是空的。我尝试使用 Django 内置的 dumpdata / loaddata 函数及其序列化程序来迁移表,但它似乎并不喜欢我的很多表,这让我相信在这种情况下编写手动解决方案可能是最好的。我有代码来验证数据库中每个表的列标题是否相同,并且匹配表是否存在 - 工作正常。我在想最好只逐行抓取mysql数据,然后逐行将其插入到相应的postgres表中(我不关心速度atm)。一件事是,我不知道构造插入语句的正确方法是什么。我有类似的东西:

table_name = retrieve_table()
column_headers = get_headers(table_name) #can return a tuple or a list
postgres_cursor = postgres_con.cursor()
rows = mysql_cursor.fetchall()      
for row in rows: #row is a tuple
   postgres_cursor.execute(????)

在哪里 ???将是插入语句。我只是不知道构建它的正确方法是什么。我有我想作为字符串插入的表名,我有我可以将其视为列表、元组或字符串的列标题,并且我有我想插入的相应值。构建语句的推荐方法是什么?我已经阅读了psycopg 文档页面上的文档,但我并没有完全看到满足我需求的方式。我不知道(或认为)这是正确迁移的完全正确方法,所以如果有人能以正确的方式引导我或提供任何建议,我将不胜感激。

4

0 回答 0