Lanyrd's MySQL to PostgreSQL conversion script
Python
Switch branches/tags
Nothing to show
Latest commit c4a1405 Mar 7, 2016 @andrewgodwin andrewgodwin Merge pull request #39 from machisuji/patch-2
convert all blobs to bytea
Permalink
Failed to load latest commit information.
LICENSE Re-indented license for readability Jul 22, 2014
README.md Update README.md Sep 24, 2015
db_converter.py convert all blobs to bytea Mar 7, 2016

README.md

MySQL to PostgreSQL Converter

Lanyrd's MySQL to PostgreSQL conversion script. Use with care.

This script was designed for our specific database and column requirements - notably, it doubles the lengths of VARCHARs due to a unicode size problem we had, places indexes on all foreign keys, and presumes you're using Django for column typing purposes.

How to use

First, dump your MySQL database in PostgreSQL-compatible format

mysqldump --compatible=postgresql --default-character-set=utf8 \
-r databasename.mysql -u root databasename

Then, convert it using the dbconverter.py script

python db_converter.py databasename.mysql databasename.psql

It'll print progress to the terminal.

Finally, load your new dump into a fresh PostgreSQL database using:

psql -f databasename.psql

More information

You can learn more about the move which this powered at http://lanyrd.com/blog/2012/lanyrds-big-move/ and some technical details of it at http://www.aeracode.org/2012/11/13/one-change-not-enough/.