en
Jazyk
  • en
  • de
  • fr
  • es
  • br
  • ru
  • jp
  • kr
AI překlad
  • ae
  • cn
  • vn
  • id
  • eu
  • il
  • gr
  • no
  • fi
  • dk
  • se
  • tr
  • bg
  • nl
  • it
  • pl
  • hu
  • ro
  • ua
  • cs

Migrujte z Postgresu na MySQL

Úvod

Kvůli vám, správcům serveru Easy Redmine, jsme testovali několik nástrojů pro migraci DB z Postgresu do MySQL.

Jeden je bezplatný open-source, ale také starší a s výraznou nevýhodou. Ostatní byly prémiové nástroje s výsledky, které podle nás stojí za nákup.

Volná možnost - skript pg2mysql php

Disclaimer: Tento nástroj byl vyvinut třetí stranou => NENÍ to produkt Easy Software, a proto NENÍ ZARUČEN.
Testovaný nástroj je k dispozici na adrese:
http://www.lightbox.ca/pg2mysql.php
Provedli jsme vlastní úpravy nástroje, aby fungoval s php 7.4. Používání je však stále na vlastní riziko a neposkytujeme ŽÁDNÉ ZÁRUKY.

Kroky pro migraci

1. Stáhněte si skript a rozbalte archiv

wget http://www.lightbox.ca/pg2mysql/pg2mysql-1.9.tar.bz2  (obsahuje původní skript od autora)
wget https://www.easyredmine.com/ER/media/knowledge-base/pg2mysql-1.9.zip (obsahuje náš upravený skript pro php verze 7.4)

tar -xvf pg2mysql -1.9.tar.bz2(v případě původního scénáře od autora)
rozbalte soubor pg2mysql-1.9.zip (v případě našeho upraveného skriptu pro php verze 7.4)

2. Nainstalujte php

sudo apt nainstalovat php7.4-CLI (v případě našeho upraveného skriptu)

3. Vytvořte výpis databáze PostgreSQL ve formátu .sql, ujistěte se, že používáte „--format p --inserts“

sudo -u postgres pg_dump --format p -vloží DBNAME_HERE> /path/to/file.sql

4. Přepněte do složky pg2mysql-1.9

cd pg2mysql-1.9/

5. běh

php pg2mysql_cli.php /path/to/pd/dump/file.sql /path/where/to/save/mysql/file.sql

Uvidíte některé řádky jako

Dokončeno! 30820 řádků 5539 sql kousky

Poznámky:
 - Ne, není to dokonalé
 - Ano, zahodí VŠECHNY uložené procedury
 - Ano, zahodí VŠECHNY dotazy kromě CREATE TABLE a INSERT INTO 
 - Ano, návrhy nám můžete zaslat e -mailem: info [AT] lightbox.org
    - V e -mailech prosím vložte kód Postgres a očekávaný kód MySQL
 -Pokud máte problémy s vytvářením skládky postgres, použijte „--format p --inserts“
 - Výchozí výstupní motor, pokud není uveden, je MyISAM "

6. Nyní bude vytvořen soubor s upraveným sql výpisem. Důrazně vám doporučujeme, abyste si to prošli a nahradili MyISAM na InnoDB všude

7. Nyní můžete tento výpis obnovit do čisté databáze mysql.

8. Protože (jak nás autor upozornil) skript neukládá indexy, musíte je do každé tabulky přidat ručně (Bude to fungovat bez indexů, ale může to způsobit vážné problémy s výkonem). Existuje seznam všech indexů, které by měly existovat v tabulkách MySQL generovaných běžnou aplikací Easy Redmine. Musíte je přidat ručně nebo pomocí vlastního skriptu.

Na webu jsou k dispozici další bezplatné nástroje. Naše výsledky testů však nebyly uspokojivé.

Upgradujte své projektové řízení

Získejte funkce Redmine nové úrovně, které se přizpůsobí vašim potřebám a přinesou vám dokonalý přehled.

Prémiový nástroj - DB Convert for MySQL & PostgreSQL v. 4.3.5

Testovali jsme celkem 3 prémiové nástroje. DBConvert se cítil jako nejvhodnější, proto popisujeme jeho podrobné kroky.

Příprava:

1. Ujistěte se, že databáze MySQL i PostgreSQL jsou přístupné zvenčí (můžete to dočasně povolit).

2. Ujistěte se, že se můžete přihlásit k oběma dbs pomocí uživatele a hesla

3. Nainstalujte nástroj z - https://dbconvert.com/postgresql/mysql/

Zahájit převod:

1. Spusťte průvodce.

2. Vyberte zdrojovou databázi:
PostgreSQL
Název hostitele: IP nebo název domény serveru, kde je nainstalován postgres db.
Port: pokud se liší od výchozího
Uživatelské jméno: je přístupné uživatelské jméno, pomocí kterého se chystáte převést db
Heslo: heslo pro uživatele výše.

Klikněte na tlačítko Test připojení. Aplikace zkontroluje, zda je možné se ke zdrojovému db serveru připojit pomocí zvoleného uživatele a hesla. Pokud je to možné, načte se seznam databází - vyzvedněte ten správný.

3. Klikněte na tlačítko "Další". Aplikace se připojí k postgres a obdrží seznam tabulek dostupných v databázi. Můžete si vybrat všechny, které mají být převedeny, nebo pouze jeden/několik z nich.

4. Chvíli počkejte a budete přesměrováni na další krok - nastavení připojení MySQL.
Název hostitele: IP nebo název domény serveru, kde je nainstalován mysql db.
Port: pokud se liší od výchozího
Uživatelské jméno: je přístupné uživatelské jméno, pomocí kterého se chystáte převést db
Heslo: heslo pro uživatele výše.

Klikněte na tlačítko Test připojení. Aplikace zkontroluje, zda je možné se ke zdrojovému db serveru připojit pomocí zvoleného uživatele a hesla. Pokud je to možné, načte se seznam databází - vyzvedněte ten správný.

5. V dalším kroku aplikace zkontroluje zdrojovou databázi a poskytne vám několik doporučení, jak vyřešit případné problémy.

Setkali jsme se s dalším problémem:

Tabulka „mění“ pole „akce“. V původním DB to byl typ „CHAR (1)“. Ale výchozí hodnota byla '', takže Mysql předpokládal, že to není platné. Můžete zvolit Nový typ. Vybrali jsme CHAR (2) a klikněte na Další. Problém byl vyřešen.

Opakujte podobné akce s dalšími problémovými poli.

6. Klikněte na Další ještě jednou. Aplikace zahájí konverzi a zobrazí vám celkový a aktuální pokrok. Počkejte, až bude konverze provedena.

7. Klikněte na „Konec“. Konverze je hotová.

Autor tohoto nástroje poskytuje podporu platícím zákazníkům.

Cena: 149 $ (jednorázově)

Další prémiové možnosti

Testovali jsme také zkušební verze těchto nástrojů. Zde jsou obecné komentáře k nim:

  • pgs2scld (https://www.convert-in.com/pgs2sql.htm)
    Žádné problémy s připojením k databázi (není třeba instalovat další ovladače nebo je nějak nastavovat nebo cokoli jiného). Má zkušební verzi (ve zkušebním režimu kopíruje pouze 50 záznamů na tabulku, ale kontroluje všechny řádky a ukazuje stejný průběh, jako kdyby byla zkopírována celá databáze). Má interní ladicí program a ukazuje možné problémy s migrací. Má mnoho různých možností, které lze použít během migrace. Má 24/7 podporu pro placené klienty. Pouze uživatelské rozhraní, Windows pouze.
    Cena 49 $ (jednorázově).
  • Sada nástrojů pro migraci databáze ESF (https://www.dbsofts.com/articles/postgresql_to_mysql/)
    Žádné problémy s připojením k databázi (není třeba instalovat další ovladače nebo je nějak nastavovat nebo cokoli jiného). Má zkušební verzi (ve zkušebním režimu kopíruje pouze 50000 24 záznamů). Má interní ladicí program a ukazuje možné problémy s migrací. Má mnoho různých možností, které lze použít během migrace. Má 7/XNUMX podporu pro placené klienty. Pouze uživatelské rozhraní, Windows pouze.
    Cena 322 $ (jednorázově).

Vyzkoušejte Easy Redmine ve 30denní bezplatné zkušební verzi

Plné funkce, chráněné SSL, denní zálohy ve vaší geolokaci