What's the best way to migrate a Django DB from SQLite to MySQL? What's the best way to migrate a Django DB from SQLite to MySQL? sqlite sqlite

What's the best way to migrate a Django DB from SQLite to MySQL?


Execute:

python manage.py dumpdata > datadump.json

Next, change your settings.py to the mysql database.

Finally:

python manage.py loaddata datadump.json


After some hard searching I got several problems that I hope future answer looking people will find useful.

my formula is

  1. python manage.py dumpdata > datadump.json
  2. Change settings.py to your mysql
  3. Make sure you can connect on your mysql (permissions,etc)
  4. python manage.py migrate --run-syncdb
  5. Exclude contentype data with this snippet in shell

    python manage.py shell

    from django.contrib.contenttypes.models import ContentTypeContentType.objects.all().delete()quit()

  6. python manage.py loaddata datadump.json

Hope that will help you!


This is a neater way to avoid the ContentType issues described elsewhere:

./manage.py dumpdata --exclude contenttypes --exclude auth.permission --exclude sessions --indent 2 > dump.json

Then:

./manage.py loaddata dump.json