私は mysql データベースを postgres データベースに移行中です。ここで提示されたすべての記事を読み、stackoverflow で提示されたいくつかのソリューションを読みました。推奨されるツールは、私にはうまくいかないようです。両方のデータベースは Django の syncdb によって生成されましたが、現時点では postgres データベースは多かれ少なかれ空です。Django の組み込みの dumpdata / loaddata 関数とそのシリアライザーを使用してテーブルを移行しようとしましたが、多くのテーブルが気に入らないようで、この場合は手動で解決策を作成するのが最善であると思われます。データベース内の各テーブルの列ヘッダーが同じであること、および一致するテーブルが存在することを確認するコードがあります。これは正常に機能します。mysql データを行ごとに取得し、それをそれぞれの postgres テーブルに行ごとに挿入するのが最善だと考えていました (速度 atm には関心がありません)。1 つのことは、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(????)
どこ ???挿入ステートメントになります。それを構築する適切な方法が何であるかはわかりません。文字列として挿入したいテーブル名があり、リスト、タプル、または文字列として扱うことができる列ヘッダーがあり、挿入したいそれぞれの値があります。ステートメントを構築するための推奨される方法は何ですか? psycopg のドキュメント ページのドキュメントを読みましたが、自分のニーズを満たす方法がよくわかりませんでした。これが適切に移行するための完全に正しい方法であることを私は知りません (または考えます)。