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

Migra da Postgres a MySQL

Introduzione

Per il bene di voi, amministratori del server Easy Redmine, abbiamo testato un paio di strumenti per la migrazione del DB da Postgres a MySQL.

Uno è un open source gratuito, ma anche più vecchio e con uno svantaggio significativo. Gli altri erano strumenti premium, con risultati che, a nostro avviso, ne fanno valere l'acquisto.

Opzione gratuita - script php pg2mysql

Disclaimer: Questo strumento è stato sviluppato da una terza parte => NON è un prodotto di Easy Software, e quindi NON È GARANTITO.
Lo strumento testato disponibile su:
http://www.lightbox.ca/pg2mysql.php
Abbiamo apportato le nostre modifiche allo strumento per farlo funzionare con php 7.4. Tuttavia, l'uso è ancora a proprio rischio e non forniamo alcuna GARANZIA.

Passaggi per la migrazione

1. Scarica lo script e scompatta l'archivio

wget http://www.lightbox.ca/pg2mysql/pg2mysql-1.9.tar.bz2  (contiene la sceneggiatura originale dell'autore)
wget https://www.easyredmine.com/ER/media/knowledge-base/pg2mysql-1.9.zip (contiene il nostro script modificato per la versione php 7.4)

tar -xvf pg2mysql-1.9.tar.bz2(in caso di sceneggiatura originale dell'autore)
decomprimere pg2mysql-1.9.zip (nel caso del nostro script modificato per php versione 7.4)

2. Installa php

sudo apt installa php7.4-cli (in caso di nostro script modificato)

3. Crea un dump del database PostgreSQL in formato .sql, assicurati di utilizzare "--format p --inserts"

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

4. Passa alla cartella pg2mysql-1.9

cd pg2mysql-1.9/

5. Esegui

php pg2mysql_cli.php /percorso/per/pd/dump/file.sql /percorso/dove/per/salvare/mysql/file.sql

Vedrai alcune righe come

Completato! 30820 righe 5539 blocchi sql

Note:
 - No, non è perfetto
 - Sì, elimina TUTTE le procedure memorizzate
 - Sì, elimina TUTTE le query ad eccezione di CREATE TABLE e INSERT INTO 
 - Sì, puoi inviarci suggerimenti via email: info[AT]lightbox.org
    - Nelle e-mail, includi il codice Postgres e il codice MySQL previsto
 - Se hai problemi a creare il tuo dump postgres, assicurati di usare "--format p --inserts"
 - Il motore di output predefinito se non specificato è MyISAM "

6. Ora verrà creato il file con il dump sql modificato. Ti consigliamo vivamente di esaminarlo e sostituire MyISAM con InnoDB ovunque

7. Ora puoi ripristinare questo dump in un database mysql chiaro.

8. Poiché (come ci ha comunicato l'autore) lo script non salva gli indici, devi aggiungerli manualmente a ogni tabella (funzionerà senza indici ma potrebbe causare seri problemi di prestazioni). Esiste un elenco di tutti gli indici che dovrebbero esistere nelle tabelle MySQL generate dalla normale applicazione Easy Redmine. Devi aggiungerli manualmente o tramite il tuo script personalizzato.

Ci sono altri strumenti gratuiti disponibili sul web. Tuttavia, i risultati dei nostri test non sono stati soddisfacenti con quelli.

Aggiorna la tua gestione dei progetti

Ottieni funzionalità Redmine di livello superiore che si adattano alle tue esigenze e ti offrono una panoramica perfetta.

Strumento Premium - DB Convert per MySQL e PostgreSQL v. 4.3.5

Abbiamo testato complessivamente 3 strumenti premium. DBConvert sembrava il più adatto, quindi stiamo descrivendo i passaggi dettagliati per questo.

Preparazione:

1. Assicurati che entrambi i database MySQL e PostgreSQL siano accessibili dall'esterno (puoi permetterlo temporaneamente).

2. Assicurati di poter accedere a entrambi i dbs con utente e password

3. Installare lo strumento da - https://dbconvert.com/postgresql/mysql/

Avvia la conversione:

1. Avviare la procedura guidata.

2. Scegli database di origine:
PostgreSQL
Hostname: ip o nome di dominio del server in cui è installato postgres db.
Porta: se diversa da quella predefinita
Nome utente: il nome utente con cui db stai per convertire è accessibile
Password: password per l'utente sopra.

Fare clic sul pulsante Verifica connessione. L'app verificherà che sia possibile connettersi al server db di origine con utente e password scelti. Se è possibile, verrà caricato l'elenco dei database: prendi quello corretto.

3. Fai clic su "Avanti". L'app si collegherà a postgres e riceverà l'elenco delle tabelle disponibili nel database. Puoi scegliere di convertirli tutti o solo uno/pochi di essi.

4. Attendi un po' e verrai reindirizzato al passaggio successivo: le impostazioni della connessione MySQL.
Hostname: ip o nome di dominio del server dove è installato mysql db.
Porta: se diversa da quella predefinita
Nome utente: il nome utente con cui db stai per convertire è accessibile
Password: password per l'utente sopra.

Fare clic sul pulsante Verifica connessione. L'app verificherà che sia possibile connettersi al server db di origine con utente e password scelti. Se è possibile, verrà caricato l'elenco dei database: prendi quello corretto.

5. Nel passaggio successivo l'applicazione controllerà il database di origine e fornirà alcuni consigli su come risolvere eventuali problemi.

Abbiamo incontrato il prossimo problema:

Tabella "modifiche" campo "azione". Nel DB originale era di tipo "CHAR (1)". Ma il valore predefinito era '', quindi Mysql supponeva che non fosse valido. Puoi scegliere Nuovo tipo. Abbiamo scelto CHAR(2) e facciamo clic su Avanti. Il problema è stato risolto.

Ripeti azioni simili con qualsiasi altro campo problematico.

6. Fare clic su Avanti ancora una volta. L'applicazione avvierà la conversione mostrandoti i progressi totali e attuali. Aspetta che la conversione sia terminata.

7. Fare clic su "Esci". La conversione è fatta.

L'autore di questo strumento fornisce supporto per i clienti paganti.

Prezzo: $ 149 (una volta)

Altre opzioni premium

Abbiamo anche testato versioni di prova di questi strumenti. Ecco i commenti generali su di loro:

  • pgs2scld (https://www.convert-in.com/pgs2sql.htm)
    Nessun problema con la connessione al database (non è necessario installare driver aggiuntivi o configurarli in qualche modo o altro). Ha la versione di prova (in modalità di prova copia solo 50 record per tabella, ma controlla tutte le righe e mostra lo stesso progresso come se l'intero database fosse stato copiato). Ha un debugger interno e mostra possibili problemi con la migrazione. Ha molte opzioni diverse che possono essere applicate durante la migrazione. Ha supporto 24 ore su 7, XNUMX giorni su XNUMX per i clienti a pagamento. Solo interfaccia utente, Windows solo.
    Prezzo $ 49 (una volta).
  • Toolkit di migrazione del database ESF (https://www.dbsofts.com/articles/postgresql_to_mysql/)
    Nessun problema con la connessione al database (non è necessario installare driver aggiuntivi o configurarli in qualche modo o altro). Ha una versione di prova (in modalità di prova copia solo 50000 record). Ha un debugger interno e mostra possibili problemi con la migrazione. Ha molte opzioni diverse che possono essere applicate durante la migrazione. Ha supporto 24 ore su 7, XNUMX giorni su XNUMX per i clienti a pagamento. Solo interfaccia utente, Windows solo.
    Prezzo $ 322 (una volta).

Prova Easy Redmine in 30 giorni di prova gratuita

Funzionalità complete, protezione SSL, backup giornalieri, nella tua geolocalizzazione