Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用MySQL数据将此插入到PostgreSQL中?_Python_Mysql_Django_Database Migration - Fatal编程技术网

Python 如何使用MySQL数据将此插入到PostgreSQL中?

Python 如何使用MySQL数据将此插入到PostgreSQL中?,python,mysql,django,database-migration,Python,Mysql,Django,Database Migration,我正在将mysql数据库迁移到postgres数据库。我已经阅读了所有介绍的文章,也阅读了一些介绍的解决方案。推荐的工具似乎不适合我。这两个数据库都是由Django的syncdb生成的,尽管postgres db目前或多或少是空的。我尝试使用Django内置的dumpdata/loaddata函数及其序列化程序迁移这些表,但它似乎不喜欢我的很多表,这让我相信在这种情况下编写手动解决方案可能是最好的。我有代码来验证数据库中每个表的列标题是否相同,以及是否存在匹配的表,这很好。我想最好是一行一行地抓

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

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(????)

哪里???将是insert语句。我只是不知道正确的方法是什么。我有我想作为字符串插入的表名,有我可以作为列表、元组或字符串处理的列标题,还有我想插入的相应值。构建该语句的推荐方法是什么?我已经阅读了上的文档,但我不太明白如何满足我的需求。我不知道(或认为)这是正确迁移的完全正确的方法,因此如果有人能以正确的方式指导我或提供任何建议,我将不胜感激。

为什么推荐的工具不适合您?通过Django和/或psycopg传输数据似乎效率极低——在上面的链接中详细介绍的更直接的MySQL到Postgres路由有什么问题?psycopg的文档仅在与Python代码交互时适用。当您运行
execute
时,您正在处理纯SQL,因此请参阅PostgreSQL文档:。