Μετεγκατάσταση από το Postgres στη MySQL

Εισαγωγή

Για χάρη σας, διαχειριστές διακομιστή Easy Project, δοκιμάσαμε μερικά εργαλεία για τη μετεγκατάσταση DB από το Postgres στο MySQL

Το ένα είναι δωρεάν ανοιχτού κώδικα, αλλά και παλαιότερο και με σημαντικό μειονέκτημα. Οι άλλοι ήταν premium εργαλεία, με αποτελέσματα που, κατά τη γνώμη μας, το αξίζουν στην αγορά.

Δωρεάν επιλογή - σενάριο pg2mysql php

Αποποίηση ευθυνών: Αυτό το εργαλείο αναπτύχθηκε από τρίτο μέρος => ΔΕΝ είναι προϊόν Εύκολου Λογισμικού και επομένως ΔΕΝ ΕΓΓΥΗΤΑΙ.
Το δοκιμασμένο εργαλείο διατίθεται στη διεύθυνση:
http://www.lightbox.ca/pg2mysql.php
Κάναμε τις δικές μας τροποποιήσεις στο εργαλείο για να το κάνουμε να λειτουργεί με php 7.4. Ωστόσο, η χρήση εξακολουθεί να είναι με δική της ευθύνη και δεν παρέχουμε καμία εγγύηση.

Βήματα για τη μετανάστευση

1. Κατεβάστε το σενάριο και αποσυσκευάστε το αρχείο.

wget http://www.lightbox.ca/pg2mysql/pg2mysql-1.9.tar.bz2  (περιέχει πρωτότυπο σενάριο από τον συγγραφέα)
wget https://www.easyredmine.com/ER/media/knowledge-base/pg2mysql-1.9.zip (περιέχει το τροποποιημένο σενάριο για php έκδοση 7.4)

tar -xvf pg2mysql-1.9.tar.bz2(σε περίπτωση πρωτότυπου σεναρίου από τον συγγραφέα)
αποσυμπιέστε pg2mysql-1.9.zip (σε περίπτωση τροποποιημένου σεναρίου για php έκδοση 7.4)

2. Εγκαταστήστε το php

sudo apt εγκατάσταση php7.4-cli (στην περίπτωση του τροποποιημένου σεναρίου μας)

3. Δημιουργήστε μια απόρριψη βάσης δεδομένων PostgreSQL σε μορφή .sql, βεβαιωθείτε ότι χρησιμοποιείτε το "--format p --inserts"

sudo -u postgres pg_dump --format p - εισαγωγές DBNAME_HERE> /path/to/file.sql

4. Μεταβείτε στο φάκελο pg2mysql-1.9

cd pg2mysql-1.9 /

5. τρέξιμο

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

Θα δείτε μερικές γραμμές όπως

Ολοκληρώθηκε το! 30820 γραμμές 5539 τετραγωνικά τεμάχια

:
 - Όχι δεν είναι τέλειο
 - Ναι απορρίπτει ΟΛΕΣ τις αποθηκευμένες διαδικασίες
 - Ναι, απορρίπτει ΟΛΑ τα ερωτήματα, εκτός από το ΔΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ και ΕΙΣΑΓΩΓΗ 
 - Ναι, μπορείτε να μας στείλετε μέσω email προτάσεις: info [AT] lightbox.org
    - Στα μηνύματα ηλεκτρονικού ταχυδρομείου, συμπεριλάβετε τον κωδικό Postgres και τον αναμενόμενο κωδικό MySQL
 - Εάν αντιμετωπίζετε προβλήματα με τη δημιουργία του postgres dump, βεβαιωθείτε ότι χρησιμοποιείτε το "--format p --inserts"
 - Ο προεπιλεγμένος κινητήρας εξόδου εάν δεν προσδιορίζεται είναι το MyISAM "

6. Τώρα θα δημιουργηθεί αρχείο με τροποποιημένο sql dump. Σας συνιστούμε ανεπιφύλακτα να το περάσετε και να αντικαταστήσετε το MyISAM σε InnoDB παντού

7. Τώρα μπορείτε να επαναφέρετε αυτήν την απόρριψη σε καθαρή βάση δεδομένων mysql.

8. Επειδή (όπως μας ενημέρωσε ο συγγραφέας) το σενάριο δεν αποθηκεύει ευρετήρια, πρέπει να τα προσθέσετε χειροκίνητα σε κάθε πίνακα (θα λειτουργεί χωρίς ευρετήρια, αλλά μπορεί να προκαλέσει σοβαρά προβλήματα απόδοσης). Υπάρχει μια λίστα με όλα τα ευρετήρια που πρέπει να υπάρχουν στους πίνακες MySQL που δημιουργούνται από την κανονική εφαρμογή Easy Project. Πρέπει να τα προσθέσετε χειροκίνητα ή μέσω του δικού σας προσαρμοσμένου σεναρίου.

Υπάρχουν άλλα δωρεάν εργαλεία διαθέσιμα στον Ιστό. Ωστόσο, τα αποτελέσματα των δοκιμών μας δεν ήταν ικανοποιητικά σε αυτά.

Premium εργαλείο - Μετατροπή DB για MySQL & PostgreSQL v. 4.3.5

Δοκιμάσαμε συνολικά 3 premium εργαλεία. Το DBConvert θεωρήθηκε ως το πιο κατάλληλο, επομένως περιγράφουμε τα λεπτομερή βήματα για αυτό.

Προετοιμασία:

1. Βεβαιωθείτε ότι και οι βάσεις δεδομένων MySQL και PostgreSQL είναι προσβάσιμες από έξω (ενδέχεται να επιτρέψετε προσωρινά).

2. Βεβαιωθείτε ότι μπορείτε να συνδεθείτε και στα δύο dbs με χρήστη και κωδικό πρόσβασης

3. Εγκαταστήστε το εργαλείο από - https://dbconvert.com/postgresql/mysql/

Ξεκινήστε τη μετατροπή:

1. Ξεκινήστε τον οδηγό.

2. Επιλέξτε βάση δεδομένων πηγής:
PostgreSQL
Όνομα κεντρικού υπολογιστή: ip ή όνομα τομέα του διακομιστή όπου είναι εγκατεστημένο το postgres db.
Θύρα: εάν διαφέρει από προεπιλογή
Όνομα χρήστη: το όνομα χρήστη με το οποίο θα μετατρέψετε db θα είναι προσβάσιμο
Κωδικός πρόσβασης: κωδικός πρόσβασης για τον παραπάνω χρήστη.

Κάντε κλικ στο κουμπί Δοκιμή σύνδεσης. Η εφαρμογή θα ελέγξει ότι είναι δυνατή η σύνδεση με τον διακομιστή db προέλευσης με επιλεγμένο χρήστη και κωδικό πρόσβασης. Εάν είναι δυνατόν, θα ανεβεί ο κατάλογος των βάσεων δεδομένων - πάρτε τη σωστή.

3. Κάντε κλικ στο "Επόμενο". Η εφαρμογή θα συνδεθεί σε postgres και θα λάβει τη λίστα των πινάκων που διατίθενται στη βάση δεδομένων. Μπορείτε να επιλέξετε όλα αυτά για μετατροπή ή μόνο ένα / λίγα από αυτά.

4. Περιμένετε λίγο και θα προωθηθείτε στο επόμενο βήμα - Ρυθμίσεις σύνδεσης MySQL.
Όνομα κεντρικού υπολογιστή: ip ή όνομα τομέα του διακομιστή όπου είναι εγκατεστημένο το mysql db.
Θύρα: εάν διαφέρει από προεπιλογή
Όνομα χρήστη: το όνομα χρήστη με το οποίο θα μετατρέψετε db θα είναι προσβάσιμο
Κωδικός πρόσβασης: κωδικός πρόσβασης για τον παραπάνω χρήστη.

Κάντε κλικ στο κουμπί Δοκιμή σύνδεσης. Η εφαρμογή θα ελέγξει ότι είναι δυνατή η σύνδεση με τον διακομιστή db προέλευσης με επιλεγμένο χρήστη και κωδικό πρόσβασης. Εάν είναι δυνατόν, θα ανεβεί ο κατάλογος των βάσεων δεδομένων - πάρτε τη σωστή.

5. Στο επόμενο βήμα, η εφαρμογή θα ελέγξει τη βάση δεδομένων προέλευσης και θα σας δώσει μερικές συστάσεις για την επίλυση πιθανών προβλημάτων.

Αντιμετωπίσαμε το επόμενο πρόβλημα:

Πίνακας "αλλαγές" πεδίο "δράση". Στην αρχική DB ήταν ο τύπος "CHAR (1)". Αλλά η προεπιλεγμένη τιμή ήταν "", οπότε ο Mysql υποτίθεται ότι δεν είναι έγκυρος. Μπορείτε να επιλέξετε Νέο τύπο. Επιλέξαμε το CHAR (2) και κάντε κλικ στο Επόμενο. Το πρόβλημα επιλύθηκε.

Επαναλάβετε παρόμοιες ενέργειες με άλλα προβληματικά πεδία.

6. Κάντε κλικ στο Επόμενο για άλλη μια φορά. Η εφαρμογή θα ξεκινήσει τη μετατροπή που δείχνει τη συνολική και τρέχουσα πρόοδο. Περιμένετε μέχρι να γίνει η μετατροπή.

7. Κάντε κλικ στο "Έξοδος". Η μετατροπή έγινε.

Ο συγγραφέας αυτού του εργαλείου παρέχει υποστήριξη για πελάτες που πληρώνουν.

Τιμή: 149 $ (μία φορά)

Άλλες επιλογές premium

Δοκιμάσαμε επίσης δοκιμαστικές εκδόσεις αυτών των εργαλείων. Ακολουθούν γενικά σχόλια σχετικά με αυτά:

  • pgs2scld (https://www.convert-in.com/pgs2sql.htm)
    Δεν υπάρχουν προβλήματα με τη σύνδεση σε βάση δεδομένων (δεν χρειάζεται να εγκαταστήσετε πρόσθετα προγράμματα οδήγησης ή να τα ρυθμίσετε με κάποιο τρόπο ή οτιδήποτε άλλο). Έχει δοκιμαστική έκδοση (σε δοκιμαστική λειτουργία αντιγράφει μόνο 50 εγγραφές ανά πίνακα, αλλά ελέγχει όλες τις γραμμές και δείχνει την ίδια πρόοδο σαν να αντιγράφηκε ολόκληρη η βάση δεδομένων). Έχει εσωτερικό πρόγραμμα εντοπισμού σφαλμάτων και δείχνει πιθανά προβλήματα με τη μετεγκατάσταση. Έχει πολλές διαφορετικές επιλογές που μπορούν να εφαρμοστούν κατά τη μετεγκατάσταση. Έχει υποστήριξη 24/7 για πληρωμένους πελάτες. Μόνο διεπαφή χρήστη, Windows μόνο.
    Τιμή 49 $ (μία φορά).
  • Εργαλειοθήκη μετεγκατάστασης βάσης δεδομένων ESF (https://www.dbsofts.com/articles/postgresql_to_mysql/)
    Δεν υπάρχουν προβλήματα με τη σύνδεση σε βάση δεδομένων (δεν χρειάζεται να εγκαταστήσετε πρόσθετα προγράμματα οδήγησης ή να τα ρυθμίσετε με κάποιο τρόπο ή οτιδήποτε άλλο). Έχει δοκιμαστική έκδοση (σε δοκιμαστική λειτουργία αντιγράφει μόνο 50000 εγγραφές). Έχει εσωτερικό πρόγραμμα εντοπισμού σφαλμάτων και δείχνει πιθανά προβλήματα με τη μετεγκατάσταση. Έχει πολλές διαφορετικές επιλογές που μπορούν να εφαρμοστούν κατά τη μετεγκατάσταση. Έχει υποστήριξη 24/7 για πληρωμένους πελάτες. Μόνο διεπαφή χρήστη, Windows μόνο.
    Τιμή 322 $ (μία φορά).

Δοκιμάστε το Easy Project σε δωρεάν δοκιμή 30 ημερών

Πλήρεις δυνατότητες, προστασία SSL, καθημερινά αντίγραφα ασφαλείας, στη γεωγραφική σας τοποθεσία