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.
下载本文