Django et les fixtures
Par NiCoS le samedi 15 septembre 2007, 09:40 - Python - Django - Lien permanent
Sauvegarder les données saisies dans une instance sous la forme de fixture :
Pour sauver toutes les données de votre projet :
python manage.py dumpdata --indent=4 > initial_data.json
Note :
- le --indent=4 permet que le fichier créé soit correctement indenté et plus facile à lire.
- par défaut, c'est exporté au format json
- en nommant votre fichier initial_data.* il sera chargé automatiquement par django lors d'un syncdb, reste ou sqlreset
Pour sauver les données d'une application nommée "monapp" :
python manage.py dumpdata --indent=4 monapp > initial_data.json
Attention, si vous voulez opérer un changement sur votre modèle, il faut faire le dump avant de faire des modifications, sinon cela ne marche pas.
Pour charger une fixture, il suffit de faire :
python manage.py loadata ma_fixture.json
Passer de sqlite à MySQL (ou autre) en ayant des caractères accentués :
Lors du passage de Sqlite à MySQL, j'ai eu le bug suivant avec les exports en json : tous mes caractères accentués étaient transformés en caractères spéciaux. Le seul moyen fut de passer par un export xml :
python manage.py dumpdata --format=xml --indent=4 monapp > initial_data.xml