2 votes

Django sud: les modèles sont affichés comme non synchronisés même s'ils le sont (ou devraient l'être)

Je reçois ceci après syncdb :

clime@den /var/www/loserti $ ./manage.py syncdb
Syncing...
Creating tables ...
Creating table tagging_tag
Creating table tagging_taggeditem
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)

Synced:
 > django.contrib.auth
 > django.contrib.contenttypes
 > django.contrib.sessions
 > django.contrib.sites
 > django.contrib.messages
 > django.contrib.staticfiles
 > django.contrib.admin
 > django.contrib.admindocs
 > django.contrib.flatpages
 > debug_toolbar
 > filebrowser
 > grappelli
 > tagging
 > south

Not synced (use migrations):
 - photologue
 - web
(utilisez ./manage.py migrate pour migrer ceux-ci)

Alors je lance la migration :

clime@den /var/www/loserti $ ./manage.py migrate
Running migrations for photologue:
- Rien à migrer.
 - Chargement des données initiales pour photologue.
Installed 0 object(s) from 0 fixture(s)
Running migrations for web:
- Rien à migrer.
 - Chargement des données initiales pour web.
Installed 0 object(s) from 0 fixture(s)

Mais le résultat de syncdb est toujours le même :

clime@den /var/www/loserti $ ./manage.py syncdb
Syncing...
Creating tables ...
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)

Synced:
 > django.contrib.auth
 > django.contrib.contenttypes
 > django.contrib.sessions
 > django.contrib.sites
 > django.contrib.messages
 > django.contrib.staticfiles
 > django.contrib.admin
 > django.contrib.admindocs
 > django.contrib.flatpages
 > debug_toolbar
 > filebrowser
 > grappelli
 > tagging
 > south

Not synced (use migrations):
 - photologue
 - web
(utilisez ./manage.py migrate pour migrer ceux-ci)

Comment est-ce possible et comment le corriger ?

EDIT : Voici une idée vague. Est-ce que j'ai utilisé ./manage.py syncdb à un moment pour créer de nouvelles tables pour ces applications et j'aurais dû utiliser des migrations à la place ?

3voto

Chris Montanaro Points 8704

Ceci est juste un avertissement car ces tables sont gérées par south et sont ignorées lors d'une syncdb.

Une solution serait de convertir toutes vos tables en south et d'exécuter toujours migrate au lieu de syncdb. Je suppose que vous pourriez modifier manage.py d'une certaine manière pour exécuter la migration au lieu de renvoyer le message.

Si vous n'utilisez plus south pour ces applications, supprimez le répertoire des migrations dans l'application.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X