/pg2mysql

Simple scripts for converting a Postgres DB to MySQL db.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

pg2mysql

Simple scripts for converting a Postgres DB to MySQL db.

This script was created by a specific need for migrating a particular Postgres DB to MySQL and worked ok for this particular scenario.

The other tools that I found online for this kind of tasks were not working the way I needed so wrote this scripts.

There are some things to pay attention and have in mind before using it:

  • The main script is the BASH script: Maybe all could be solved inside the Python script, but for me it was faster this way because I only wanted the Python script output SQL sentences without knowing anything about MySQL.
  • There is no implementation for passing paramenters: Both script should be opened and modified accordingly to set the DB name, user, server, etc
  • The BASH script must be called from the server where the MySQL is running and I assume that "root" is the user. See the BASH script for the callings on the mysql program.
  • The Data Types from Postgres to MySQL may be incomplete. I only converted the types that was present in my DB. If later on other DBs should be migrated, I will add support for missing types. If some type is not covered, it will be outputed as FIXME.
  • The logging information and docs inside code could be improved a lot. I just didn't have time to do it.
  • The code asume that the /tmp folder exists, and there will be exported all data as CSV.
  • The connection to Postgres is opened as READONLY.
  • The export is enconding using UTF-8, and the MySQL db es created with the same enconding. Have a look at the BASH script.
  • The MySQL engine is fixed to InnoDB

And the more important thing is to open both scripts and do a simple revision to understand how it work before run them.

Hope it will be useful. That's the reason for making it public on GitHub.