Apakah ada alat baris perintah untuk mengubah database MySQL ke PostgreSQL? Saya juga ingin tahu apakah ada cara untuk mengkonversi database menggunakan mysqldump
perintah normal .
Apakah ada alat baris perintah untuk mengubah database MySQL ke PostgreSQL? Saya juga ingin tahu apakah ada cara untuk mengkonversi database menggunakan mysqldump
perintah normal .
Jawaban:
sudahkah anda mencoba:
mysqldump --compatible=postgresql dbname > export.sql
kemudian lakukan ini untuk menghindari kutip
sed "s/\\\'/\'\'/g" export.sql > export1.sql
mungkin perlu dipijat lagi jadi lihatlah mysqldump doco lebih dekat.
mysqldump
belum ada yang diperbaiki . syntax error at or near "(" LINE 2: "id" int(10) NOT NULL,
Berikut adalah beberapa alat sumber terbuka, yang bisa sangat membantu:
FromMySqlToPostgreSql
adalah alat jangkauan fitur dan sangat mudah digunakan.
Memetakan tipe data, memigrasikan batasan, indeks, PK dan FK persis seperti yang ada di db MySQL Anda.
Di bawah tenda itu menggunakan COPY PostgreSQL, jadi transfer data sangat cepat.
FromMySqlToPostgreSql ditulis dalam PHP (> = 5.4).
pgloader adalah alat pemuatan data untuk PostgreSQL, menggunakan perintah COPY. Keuntungan utamanya dibandingkan hanya menggunakan
COPY
atau \copy
, dan lebih menggunakan Pembungkus Data Asing, adalah perilaku transaksinya, di mana pgloader akan menyimpan file terpisah dari data yang ditolak, tetapi terus mencoba menyalin data yang baik di database Anda. Perilaku PostgreSQL default adalah transaksional, yang berarti bahwa setiap garis yang salah dalam data input (file atau basis data jauh) akan menghentikan seluruh beban massal untuk tabel. pgloader juga mengimplementasikan pemformatan ulang data, contoh khasnya adalah transformasi datestamps MySQL 0000-00-00 dan 0000-00-00 00:00:00 ke PostgreSQLNULL
nilai (karena kalender kami tidak pernah memiliki nol tahun).
Sebenarnya ada alat migrasi gratis yang cukup mudah digunakan, dikembangkan oleh EnterpriseDB sendiri. Itu dapat diinstal melalui StackBuilder: Migration Toolkit
Baru-baru ini saya menggunakan alat yang tidak bebas dari DBConvert untuk mengubah akses basis data ke postgres, dan menemukan bahwa itu sepadan dengan uang dibandingkan dengan jumlah waktu yang saya sia-siakan untuk melakukannya dengan andal gratis. Jual alat serupa untuk postgres MySQL <-> , yang belum saya gunakan, tetapi mungkin patut dipertimbangkan kecuali Anda hanya tertarik pada alat-alat baris perintah.
Jika Anda bertanya-tanya saya tidak berafiliasi dengan mereka dengan cara apa pun :-)
Anda dapat menggunakan EnterpriseDB Migration Wizard, misalnya.
Itu dapat dengan mudah melakukan migrasi OracleDB. Tetapi untuk Mysql, ia memiliki beberapa keterbatasan, misalnya, tidak mendukung tampilan, pemicu, prosedur tersimpan.
Untuk selengkapnya, lihat EDB Migration Toolkit . Tidak yakin, tetapi dimungkinkan untuk melakukan migrasi mysql-> oracle-> postgresql menyimpan prosedur tersimpan Anda (jika ada).
Grep ini: Database dan Alat Migrasi SQL
Ini hanya untuk menambah jawaban yang ada, yang membantu saya menemukan solusi ini. Saya menggunakan FromMySqlToPostgreSql . Yang perlu Anda lakukan adalah mengunduh dan mengekstrak FromMySqlToPostgreSql , membuat salinan contoh file konfigurasi, menetapkan nilai koneksi db di dalamnya, dan menjalankan file indeks dengan perintah berikut:
php index.php config.xml
Sederhana namun efektif!
Ada alat opensource yang menyediakan fungsionalitas untuk mengubah MySQL db menjadi Postgresql db termasuk dalam indeks, fks, dan data.
https://github.com/ggarri/mysql2psql
Alat ini juga memungkinkan untuk menentukan perubahan skema sehingga Anda dapat melakukan beberapa peningkatan pada skema Anda saat ini dalam waktu berjalan.