3👍
I just used this tool to migrate an internal app and it worked wonderfully. https://github.com/maxlapshin/mysql2postgres
32👍
Converting MySQL database to Postgres database with Django
First backup your data of the old Mysql database in json fixtures:
$ python manage.py dumpdata contenttypes --indent=4 --natural-foreign > contenttype.json
$ python manage.py dumpdata --exclude contenttypes --indent=4 --natural-foreign > everything_else.json
Then switch your settings.DATABASES to postgres settings.
Create the tables in Postgresql:
$ python manage.py migrate
Now delete all the content that is automatically made in the migrate (django contenttypes, usergroups etc):
$ python manage.py sqlflush | ./manage.py dbshell
And now you can safely import everything, and keep your pk’s the same!
$ python manage.py loaddata contenttype.json
$ python manage.py loaddata everything_else.json
Tested with Django==1.8
2👍
You can do that using Django serializers to output the data from MySQL’s format into JSON and then back into Postgres. There are some good artices on internet about that:
- Django: WSGIRequest' object has no attribute 'user' on some pages?
- How to make Django Password Reset Email Beautiful HTML?
- Converting a django ValuesQuerySet to a json object
- Sending a message to a single user using django-channels
- Problem launching docker-compose : python modules not installed
1👍
- Python/Django development, windows or linux?
- Improving Performance of Django ForeignKey Fields in Admin
- Django global variable
- How to create custom groups in django from group
- Change default Django REST Framework home page title
0👍
I’ve not done it either.
I’d first follow this migration guide, there is a MySql section which should take care of all your data. Then django just switch the mysql to postgre in the settings. I think that should be ok.
I found another question on stackoverflow which should help with the converting mysql to postgre here.
- How to embed matplotlib graph in Django webpage?
- Python Django custom template tags register.assignment_tag not working
- Django redirect() with anchor (#) parameters
0👍
-
python manage.py dump.data >> data.json
-
Create database and user in postrgesql
- Set your just created database in postrgesql as default database in django settings or use param –database=your_postrgesql_database next steps
-
Run syncdb for create tables.
python syncdb [–database=your_postrgesql_database] –noinput
-
Create dump without data, drop all tables and load dump. Or truncate all tables (table django_content_type whith data which can be not equals your old data – it is way to many errors). At this step we need empty tables in postgresql-db.
-
When you have empty tables in postgresql-db just load your data:
python manage.py loaddata data.json
And be fun!
- Selenium – python. how to capture network traffic's response
- Django reverse error: NoReverseMatch
- Converting a django ValuesQuerySet to a json object
- Django. Error message for login form
- How to add attributes to option tags?
0👍
I wrote a Django management command that copies one database to another:
https://gist.github.com/mturilin/1ed9763ab4aa98516a7d
You need to add both database in the settings and use this command:
./manage.py copy_db from_database to_database app1 app2 app3 --delete --ignore-errors
What cool about this command is that it recursively copy dependent objects. For example, if the model have 2 foreign keys and two Many-to-Many relationships, it will copy the other objects first to ensure you won’t get foreign key violation error.
- Can't login to Django /admin interface
- Django: WSGIRequest' object has no attribute 'user' on some pages?
- How does this Man-In-The-Middle attack work?
- Django unable to find MySQLdb python module