2010-06-14 16 views
34

Ho bisogno di migrare il mio db da sqlite a mysql, e i vari strumenti/script fuori ci sono troppi per me per individuare facilmente la soluzione più sicura ed elegante.Qual è il modo migliore per migrare un Django DB da SQLite a MySQL?

Questo mi sembrava bello http://djangosnippets.org/snippets/14/ ma sembra essere di 3 anni da ottenere un aggiornamento che è preoccupante ..

Puoi consigliare una soluzione che è noto per essere affidabile con Django 1.1.1?

+3

Suppongo che tu abbia già provato un 'dumpdata' seguito da un' loaddata'? –

risposta

60

Execute:

python manage.py dumpdata > datadump.json 

Avanti, modificare la settings.py al database mysql.

Infine:

python manage.py loaddata datadump.json 
+3

Tranne a volte questo non funziona, se hai messo i dati unicode in stringhe in sql, il creatore di fixture e mysql non sembrano andare d'accordo. Almeno, è quello che sono venuto qui cercando di capire come risolvere. – freyley

+2

Oppure questo non funziona a causa di errori di integrità ... o di molti altri problemi. – Marcin

+1

A volte viene generato "... non è serializzabile JSON" –

23

Dopo qualche ricerca difficile ho avuto diversi problemi che spero in futuro di risposta alla ricerca di persone troveranno utile.

mia formula è

  1. python manage.py dumpdata > datadump.json
  2. Change settings.py al vostro mysql
  3. assicurarsi la possibilità di collegare il vostro mysql (permessi, ecc)
  4. python manage.py migrate --run-syncdb
  5. Escludi contentype dati con questo snippet

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

  6. python manage.py loaddata datadump.json

speranza che vi aiuterà!

+0

che funziona per me. grazie heap – mark

+0

Che cosa fa l'esclusione dati contenttype? – DeltaG

+1

@DeltaG La risposta canonica è [questo] (https://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/). Ma la risposta migliore che ho trovato è: [questo uno] (https://stackoverflow.com/questions/20895429/how-exactly-do-django-content-types-work) –

Problemi correlati