it-swarm-eu.dev

Jak převést databázi MySQL na PostgreSQL?

Existuje nějaký nástroj příkazového řádku pro převod databáze MySQL na PostgreSQL? Chtěl bych také vědět, zda existuje způsob, jak převést databázi pomocí běžného příkazu mysqldump.

20
Mughil

zkusil jsi:

mysqldump --compatible=postgresql dbname > export.sql

pak to udělejte, abyste unikli uvozovky

sed "s/\\\'/\'\'/g" export.sql > export1.sql

možná budete potřebovat více masáží, takže se podívejte blíže na mysqldump doco.

14
Nick Kavadias

Zde je několik nástrojů s otevřeným zdrojovým kódem, které mohou být velmi užitečné:

FromMySqlToPostgreSql je nástroj pro dosahování funkcí a velmi snadné použití.
Mapuje datové typy, migruje omezení, indexy, PK a FK přesně tak, jak byly ve vašem MySQL db.
Pod kapotou používá PostgreSQL COPY, takže přenos dat je velmi rychlý.
FromMySqlToPostgreSql napsané v PHP (> = 5,4).

pgloader je nástroj pro načítání dat pro PostgreSQL pomocí příkazu COPY. Jeho hlavní výhoda oproti pouhému použití

COPY
\copy
NULL



7
AnatolyUss

Ve skutečnosti existuje bezplatný migrační nástroj, který je poměrně snadno použitelný a vyvinutý samotným EnterpriseDB. Lze jej nainstalovat pomocí StackBuilder: Migration Toolkit

3
uygar.raf

Můžete použít například Průvodce přenesením EnterpriseDB.

Může symbolicky migrovat OracleDB. Ale pro Mysql má určitá omezení, například nepodporuje pohledy, spouštěče, uložené procedury.

Více viz EDB Migration Toolkit . Nejste si jisti, ale je možné migrovat mysql-> Oracle-> postgresql a uložit uložené procedury (pokud existují).

Přejděte na toto: Nástroje pro migraci databáze a SQL

3
shcherbak

Nedávno používám nesvobodný nástroj od DBConvert k převodu přístupové databáze na postgres a zjistil jsem, že to stojí za peníze ve srovnání s množstvím času, který jsem zbytečně zkusil spolehlivě udělat zdarma. Prodejte podobný nástroj pro MySQL <-> postgres , který jsem nepoužil, ale může se vyplatit zvážit, pokud vás nezajímají pouze nástroje příkazového řádku.

V případě, že by vás zajímalo, nejsem s nimi nijak spojen :-)

To je jen k doplnění stávajících odpovědí, které mi pomohly najít toto řešení. Použil jsem FromMySqlToPostgreSql . Vše, co musíte udělat, je stáhnout a extrahovat FromMySqlToPostgreSql , vytvořit kopii ukázkového konfiguračního souboru, nastavit hodnoty připojení db v něm a spustit indexový soubor pomocí následujícího příkazu:

php index.php config.xml

Jednoduché, ale efektivní!

1
toing_toing

K dispozici je nástroj opensource, který poskytuje funkce pro převod MySQL db na Postgresql db včetně indexů, fks a data.

https://github.com/ggarri/mysql2psql

Tento nástroj umožňuje také definovat změny schématu, takže byste mohli provést některé upgrady vašeho aktuálního schématu za běhu.

0
Gabriel Garrido