

In this tutorial, we will take a django app backed by MySQL and will convert MySQL database to postgres database. This is useful if we are deploying our app toHerokubecauseHerokuuses standardPostgres
Let's assume that you have a django app running with MySQL and you want to convert this to Postgres.
1) Install dependenicies:
$ pip install psycopg2$ pip install py-mysql2pgsql2) Create Postgres database:
postgres@agiliq-Inspiron-N5010:~$ psqlpsql (9.1.11)Type "help" for help.postgres=# create database my_database;CREATE DATABASEpostgres=#3) Run:
$ py-mysql2pgsqlAt initial run this command creates a file namedmysql2pgsql.ymlhaving the below info:
mysql:hostname: localhostport: 3306socket: /tmp/mysql.sockusername: foopassword: bardatabase: your_database_namecompress: falsedestination:postgres:hostname: localhostport: 5432username: foopassword: bardatabase: your_database_nameUpdate the above configuration file with appropriate database credentials for both 'MySQL' andPostgres.
4) Run:
$ py-mysql2pgsql -v -f mysql2pgsql.ymlThe above command will transfer the data fromMySQLdatabase toPostgres.
Note:
Integrityerrors, but no worries it can be fixed. :)5) Be sure to update your databasesettings.pyfile:
DATABASES = {"default": { "ENGINE": "django.db.backends.postgresql_psycopg2", "NAME": "your_database_name", "USER": "your_username", "PASSWORD": "your_password", "HOST": "localhost", "PORT": "5432",}}6) Verify the correctness by adding some data to your existing database(Postgres).
You can read all ofmanjunath's post, andfollow manjunath on Twitter
Can we help you build amazing apps?Contact us today.
