Django
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 toHeroku
becauseHeroku
uses standardPostgres
Let's assume that you have a django app running with MySQL and you want to convert this to Postgres.
1) Install dependenicies:
<code>$ pip install psycopg2$ pip install py-mysql2pgsql</code>
2) Create Postgres database:
<code>postgres@agiliq-Inspiron-N5010:~$ psqlpsql (9.1.11)Type "help" for help.postgres=# create database my_database;CREATE DATABASEpostgres=#</code>
3) Run:
<code>$ py-mysql2pgsql</code>
At initial run this command creates a file namedmysql2pgsql.yml
having the below info:
<code>mysql:hostname: localhostport: 3306socket: /tmp/mysql.sockusername: foopassword: bardatabase: your_database_namecompress: falsedestination:postgres:hostname: localhostport: 5432username: foopassword: bardatabase: your_database_name</code>
Update the above configuration file with appropriate database credentials for both 'MySQL' andPostgres
.
4) Run:
<code>$ py-mysql2pgsql -v -f mysql2pgsql.yml</code>
The above command will transfer the data fromMySQL
database toPostgres
.
Note:
Integrity
errors, but no worries it can be fixed. :)5) Be sure to update your databasesettings.py
file:
<code>DATABASES = {"default": { "ENGINE": "django.db.backends.postgresql_psycopg2", "NAME": "your_database_name", "USER": "your_username", "PASSWORD": "your_password", "HOST": "localhost", "PORT": "5432",}}</code>
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.