Regarde ça:
$ pypy ./manage.py syncdb
/usr/lib64/pypy-2.4.0/site-packages/Django/core/management/commands/syncdb.py:24: RemovedInDjango19Warning: The syncdb command will be removed in Django 1.9
warnings.warn("The syncdb command will be removed in Django 1.9", RemovedInDjango19Warning)
(cut)
J'ai lancé un recherche rapide sur Google , mais je n'ai pas trouvé de réponse - que devrais-je utiliser à la place de syncdb
?
syncdb
est obsolète à cause de le système de migration , introduit avec Django 1.7 .
Vous pouvez maintenant suivre vos modifications à l'aide de makemigrations
. Cela transforme vos modifications de modèle en un code python pour les rendre déployables dans une autre base de données. Lorsque vous devez apporter d'autres modifications à la base de données, vous pouvez utiliser migration de données .
Après avoir créé les migrations, vous devez les appliquer : migrate
.
Ainsi, au lieu d'utiliser syncdb
, vous devez utiliser makemigrations
puis migrate
.
Flux de travail en développement après avoir modifié quelque chose dans vos modèles:
./manage.py makemigrations
./manage.py migrate
Et sur votre système de production:
./manage.py migrate
Bonus: vous n'avez pas besoin de lancer migrate
pour chaque changement. Si vous avez plusieurs modifications non encore appliquées Django les exécutera dans le bon ordre pour vous.
Vous devez absolument utiliser système de migration . Ce qui vous permet de suivre les changements dans votre models.py
, et créez des migrations pour la base de données. Le système de migration utilise les commandes makemigrations
pour créer des migrations et migrate
pour migrer la base de données.
Si, pour une raison quelconque, vous devez créer une base de données de la même manière que syncdb
, il existe un indicateur de commande qui fait en sorte que migrate
fonctionne de la même manière. Vous ne devriez le faire que si vous [~ # ~] vraiment [~ # ~] en avez besoin et que vous savez ce que vous faites. Par exemple, pour créer une base de données vide sur un système d'intégration continue de votre choix.
python manage.py migrate auth
# performs migrations for auth and contenttypes contrib apps
python manage.py migrate --run-syncdb
# creates the rest of the database
Testé sur Django 1.9.1.
Vous devez utiliser les commandes makemigrations
et migrate
introduites dans Django 1.7
syncdb
a quelques problèmes avec la migration de la base de données. donc, après Django 1,7 makemigrations
et migrate
ont été introduits. Maintenant dans Django 1,9 syncdb
a été déconseillé. essayez
1. python manage.py makemigrations
qui détecte les modifications de la base de données et en crée un .py
fichier dans le dossier de migrations 2. python manage.py migrate
appliquera les migrations à la base de données