en
Taal
  • en
  • cs
  • hu
  • it
  • es
  • fr
  • de
  • ru
Machine vertaling
  • bg
  • dk
  • nl
  • gr
  • il
  • jp
  • kr
  • geen
  • pl
  • tr

Migreren van Postgres naar MySQL

Introductie

In het belang van u, Easy Project-serverbeheerders, hebben we een aantal tools getest voor DB-migratie van Postgres naar MySQL.

De ene is een gratis open-source, maar ook ouder en met een aanzienlijk nadeel. De andere waren premium tools, met resultaten die het naar onze mening de aankoop waard maken.

Gratis optie - pg2mysql php-script

Disclaimer: Deze tool is ontwikkeld door een derde partij => het is GEEN product van Easy Software en is daarom NIET GEGARANDEERD.
De geteste tool is beschikbaar op:
http://www.lightbox.ca/pg2mysql.php
We hebben onze eigen aanpassingen aan de tool aangebracht om deze met php 7.4 te laten werken. Het gebruik is echter nog steeds op eigen risico en we bieden GEEN GARANTIE.

Stappen voor migratie

1. Download het script en pak het archief uit.

wget http://www.lightbox.ca/pg2mysql/pg2mysql-1.9.tar.bz2  (bevat origineel script van de auteur)
wget https://www.easyredmine.com/ER/media/knowledge-base/pg2mysql-1.9.zip (bevat ons aangepaste script voor php-versie 7.4)

tar -xvf pg2mysql-1.9.tar.bz2(in geval van origineel script van de auteur)
pak pg2mysql-1.9.zip uit (in het geval van ons aangepaste script voor php-versie 7.4)

2. Installeer php

sudo apt php7.4-cli installeren (in het geval van ons aangepaste script)

3. Maak een dump van de PostgreSQL-database in .sql-indeling, zorg ervoor dat u "--format p --inserts" gebruikt

sudo -u postgres pg_dump --format p - voegt DBNAME_HERE in> /path/to/file.sql

4. Schakel over naar de map pg2mysql-1.9

cd pg2mysql-1.9 /

5. Lopen

php pg2mysql_cli.php /pad/naar/pd/dump/bestand.sql /pad/waar/naar/opslaan/mysql/bestand.sql

Je zult een aantal regels zien zoals

Voltooid! 30820 lijnen 5539 sql brokken

Opmerkingen:
 - Nee, het is niet perfect
 - Ja, het verwijdert ALLE opgeslagen procedures
 - Ja, het verwijdert ALLE zoekopdrachten behalve CREATE TABLE en INSERT INTO 
 - Ja, je kunt ons suggesties mailen: info [AT] lightbox.org
    - Vermeld in e-mails de Postgres-code en de verwachte MySQL-code
 - Als je problemen hebt met het maken van je postgres-dump, zorg er dan voor dat je "--format p --inserts" gebruikt
 - Standaard output engine indien niet gespecificeerd is MyISAM "

6. Nu wordt een bestand met een gewijzigde sql-dump aangemaakt. We raden u ten zeerste aan om het door te nemen en MyISAM overal te vervangen door InnoDB

7. Nu kunt u deze dump herstellen in een duidelijke mysql-database.

8. Omdat (zoals de auteur ons liet weten) het script geen indexen opslaat, moet u ze handmatig aan elke tabel toevoegen (het werkt zonder indexen, maar het kan ernstige prestatieproblemen veroorzaken). Er is een lijst met alle indexen die zouden moeten bestaan ​​in MySQL-tabellen die zijn gegenereerd door de reguliere Easy Project-applicatie. U moet ze handmatig of via een eigen aangepast script toevoegen.

Er zijn andere gratis tools beschikbaar op internet. Onze testresultaten waren op die punten echter niet bevredigend.

Premium tool - DB Convert for MySQL & PostgreSQL v.4.3.5

We hebben in totaal 3 premium tools getest. DBConvert voelde zich het meest geschikt, daarom beschrijven we de gedetailleerde stappen ervoor.

Bereiding:

1. Zorg ervoor dat zowel MySQL- als PostgreSQL-databases van buitenaf toegankelijk zijn (u mag dit tijdelijk toestaan).

2. Zorg ervoor dat u op beide dbs kunt inloggen met een gebruikersnaam en wachtwoord

3. Installeer de tool van - https://dbconvert.com/postgresql/mysql/

Start de conversie:

1. Start de wizard.

2. Kies Brondatabase:
PostgreSQL
Hostnaam: ip of domeinnaam van de server waarop postgres db is geïnstalleerd.
Poort: indien verschillend van standaard
Gebruikersnaam: de gebruikersnaam waarmee u wilt converteren, is toegankelijk
Wachtwoord: wachtwoord voor gebruiker hierboven.

Klik op de knop Verbinding testen. De app controleert of het mogelijk is om met de gekozen gebruiker en wachtwoord verbinding te maken met de brondb-server. Als het mogelijk is, wordt de lijst met databases geüpload - pak de juiste op.

3. Klik op "Volgende". De app maakt verbinding met postgres en ontvangt de lijst met beschikbare tabellen in de database. U kunt ze allemaal kiezen om te worden bekeerd of slechts een / enkele.

4. Wacht even en u wordt doorgestuurd naar de volgende stap - MySQL-verbindingsinstellingen.
Hostnaam: ip of domeinnaam van de server waarop mysql db is geïnstalleerd.
Poort: indien verschillend van standaard
Gebruikersnaam: de gebruikersnaam waarmee u wilt converteren, is toegankelijk
Wachtwoord: wachtwoord voor gebruiker hierboven.

Klik op de knop Verbinding testen. De app controleert of het mogelijk is om met de gekozen gebruiker en wachtwoord verbinding te maken met de brondb-server. Als het mogelijk is, wordt de lijst met databases geüpload - pak de juiste op.

5. Bij de volgende stap zal de applicatie de brondatabase controleren en u enkele aanbevelingen doen om mogelijke problemen op te lossen.

We hebben het volgende probleem ontmoet:

Tabel "wijzigingen" veld "actie". In de originele DB was het type "CHAR (1)". Maar de standaardwaarde was '', dus Mysql nam aan dat het niet geldig is. U kunt Nieuw type kiezen. We hebben CHAR (2) gekozen en klikken op Volgende. Het probleem is verholpen.

Herhaal soortgelijke acties met andere onrustige velden.

6. Klik nog een keer op Volgende. De applicatie begint met de conversie en toont u de totale en huidige voortgang. Wacht tot de conversie is voltooid.

7. Klik op "Afsluiten". De conversie is voltooid.

De auteur van deze tool biedt ondersteuning voor betalende klanten.

Prijs: $ 149 (eenmalig)

Andere premium-opties

We hebben ook proefversies van deze tools getest. Hier zijn algemene opmerkingen over hen:

  • pgs2scld (https://www.convert-in.com/pgs2sql.htm)
    Geen problemen met het verbinden met de database (u hoeft geen extra stuurprogramma's te installeren of deze op de een of andere manier in te stellen). Heeft proefversie (in proefmodus kopieert slechts 50 records per tabel, maar controleert alle regels en toont dezelfde voortgang alsof de hele database is gekopieerd). Heeft een interne debugger en toont mogelijke problemen met migratie. Heeft veel verschillende opties die kunnen worden toegepast tijdens migratie. Heeft 24/7 ondersteuning voor betaalde klanten. Alleen gebruikersinterface, Dakramen en raamkozijnen alleen.
    Prijs $ 49 (eenmalig).
  • ESF-toolkit voor databasemigratie (https://www.dbsofts.com/articles/postgresql_to_mysql/)
    Geen problemen met het verbinden met de database (u hoeft geen extra stuurprogramma's te installeren of deze op de een of andere manier in te stellen). Heeft proefversie (in proefversie kopieert slechts 50000 records). Heeft een interne debugger en toont mogelijke problemen met migratie. Heeft veel verschillende opties die kunnen worden toegepast tijdens migratie. Heeft 24/7 ondersteuning voor betaalde klanten. Alleen gebruikersinterface, Dakramen en raamkozijnen alleen.
    Prijs $ 322 (eenmalig).

Probeer Easy Project in een gratis proefperiode van 30 dagen

Volledige functies, SSL-beveiligd, dagelijkse back-ups, in uw geolocatie