IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

Mise à jour d'une base de données existante


Sujet :

Django Python

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 22
    Points : 13
    Points
    13
    Par défaut Mise à jour d'une base de données existante
    Dans mon projet Django, j'ai créé initialement un fichiers models.py avec quelques classes Models. Pas de pb.
    Quelques jours plus tard, j'ai ajouté une nouvelle classe Model:

    class Country(models.Model):
    country = models.CharField(max_length=15, choices=COUNTRY)

    et ajouté la ligne:
    country = models.ManyToManyField(Country)
    dans la classe Membership existante:

    class Membership(models.Model):
    person = models.ForeignKey(Person)
    group = models.ForeignKey(Group)
    country = models.ManyToManyField(Country)
    date_joined = models.DateField()
    invite_reason = models.CharField(max_length=64)



    Via SSH j'ai saisi la commande manage.py sql membres qui a bien créé la table suivante:

    CREATE TABLE "membres_membership_country" (
    "id" integer NOT NULL PRIMARY KEY,
    "membership_id" integer NOT NULL REFERENCES "membres_membership" ("id"),
    "country_id" integer NOT NULL REFERENCES "membres_country" ("id"),
    UNIQUE ("membership_id", "country_id")
    )
    ;


    et la nouvelle table Country.


    J'ai fait la syncdb via SSH. Mais dans l'interface ADMIN j'ai l'erreur suivante:
    Exception Value: no such table: membres_membership_country

    La table "membres_membership_country" ne semble pas créée.


    En résumé:
    Dans un projet Django comment valider les modifs apportées ultérieurement à la base de données? les commandes manage.py sql et manage.py syncdb suffisent-elles?

    Merci et bon week-end

  2. #2
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 46
    Points : 58
    Points
    58
    Par défaut
    Dans un projet Django comment valider les modifs apportées ultérieurement à la base de données? les commandes manage.py sql et manage.py syncdb suffisent-elles?
    Si tu rajoute de nouveaux model la commande syncdb suffit.
    Par contre les modifs apporté à un model déjà installé ne seront pas pris en compte lors du syncdb: C'est la cause de ton erreur sql.

    Pour cela deux possibilités:
    1- Tu peux juste faire un DROP de la table dont tu as modifié le model (dans ton cas, la table pour "membership"), et tu refais un syncdb derrière, ainsi django générera toutes les tables qui vont bien. C'est la solution la plus simple, et est surtout envisageable si tu es en phase de développement et que tu te fou de ce que tu as en base de données.
    Si tu as quand même des données importantes dans ta base de données et que tes modifs ne sont pas trop importantes (rajout de quelques champs par exemple) tu peux aussi faire une sauvegarde avant la suppression, et tu restaure tes données après le syncdb.

    2- Tu utilise la commande "manage.py sql" pour voir le sql nécessaire au bon fonctionnement de ton model, et tu t'arrange pour faire les modifs avec phpmyadmin toi même. C'est comme ça que je fais personnellement.

    Je précise juste que la commande "manage.py sql" n'exécute aucun code sql, elle sert juste a voir le SQL tel qu'il doit être pour faire marcher tes models.

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    Merci pour tes infos détaillées. ça marche.
    Bonne journée.
    JacquesD.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Miseà Jour d'une base de données
    Par Kalvin_20 dans le forum VBA Access
    Réponses: 8
    Dernier message: 28/05/2008, 13h25
  2. Mise à jour d'une base de données
    Par JeanMarc_T2k dans le forum Services
    Réponses: 1
    Dernier message: 01/02/2008, 22h48
  3. Réponses: 7
    Dernier message: 13/08/2007, 13h15
  4. probleme de virgule dans la mise à jour d'une base de donnée
    Par KAF dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 24/12/2005, 02h18
  5. mise à jour d'une base de données
    Par flo83 dans le forum ASP
    Réponses: 6
    Dernier message: 12/06/2005, 20h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo