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 synchronisation de la base de données :

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
(use ./manage.py migrate to migrate these)

Donc je lance la migration :

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

Mais le résultat de la synchronisation de la base de données 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
(use ./manage.py migrate to migrate these)

Comment cela est-il possible et comment le corriger ?

EDIT : Voici une légère idée. Est-ce possible que j'aie utilisé ./manage.py syncdb à un moment donné pour créer de nouvelles tables pour ces applications et aurais-je dû utiliser les 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 toujours exécuter une migration au lieu d'une syncdb. Je suppose que vous pourriez modifier manage.py d'une manière ou d'une autre pour exécuter la migration au lieu de renvoyer le message.

Si vous n'utilisez plus south pour ces applications, supprimez le dossier 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