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 :

probleme avec synchronisation base de données?


Sujet :

Django Python

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 46
    Points : 33
    Points
    33
    Par défaut probleme avec synchronisation base de données?
    Bonjour,

    Je commence tout juste avec django.

    Je suis le tutoriel pour les premiers pas, et je suis surpris par la fonction de synchronisation.
    En fait, tout se passe bien la première fois.
    Si je la relance immédiatement après, il me renvoi une erreur, comme quoi ma table existe déjà.
    Logique qu'elle existe, logique qu'il ne l'écrase pas, mais je ne comprend pas pourquoi cela donne une erreur. Est-ce normal?

    Du coup, si j'ajoute un modèle de donné, je suis obligé de supprimer les tables qui existaient déjà, pour qu'il accepte de synchroniser la base.
    Ce qui n'est pas pratique du tout. Donc à mon avis, y'a un soucis...

    merci d'avance pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Malheureusement et à ma connaissance ceci est normal. Si tu veux modifier ta bdd tu dois faire pas mal de manip à la main.

    Je crois que c'est d'ailleurs expliqué dans la doc

    Bon courage.

  3. #3
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    bonjour,

    il me semble qu'il n'y a pas de problème pour ajouter des tables lorsque tu crées un nouveau modèle.
    Par contre si tu modifies un modèle, il te faut sauvegarder tes données (dumpdata), supprimer ta base puis la recréer (syncdb) et reinserer tes données (loaddata).

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 46
    Points : 33
    Points
    33
    Par défaut
    donc quand je fait une première synchro puis immédiatement une autre sans rien modifier, il est normal que je reçoive ce message?

    C:\Django\SITE\AOM2>python manage.py syncdb
    Creating table AOMdb2_operation
    Traceback (most recent call last):
    File "manage.py", line 11, in <module>
    execute_manager(settings)
    File "C:\Python25\Lib\site-packages\django\core\management\__init__.py", line 362, in execute_manager
    utility.execute()
    File "C:\Python25\Lib\site-packages\django\core\management\__init__.py", line 303, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
    File "C:\Python25\Lib\site-packages\django\core\management\base.py", line 195, in run_from_argv
    self.execute(*args, **options.__dict__)
    File "C:\Python25\Lib\site-packages\django\core\management\base.py", line 222, in execute
    output = self.handle(*args, **options)
    File "C:\Python25\Lib\site-packages\django\core\management\base.py", line 351, in handle
    return self.handle_noargs(**options)
    File "C:\Python25\lib\site-packages\django\core\management\commands\syncdb.py", line 78, in handle_noargs
    cursor.execute(statement)
    File "C:\Python25\lib\site-packages\django\db\backends\util.py", line 19, in execute
    return self.cursor.execute(sql, params)
    File "C:\Python25\Lib\site-packages\django\db\backends\mysql\base.py", line 84, in execute
    return self.cursor.execute(query, args)
    File "C:\Python25\lib\site-packages\MySQLdb\cursors.py", line 166, in execute
    self.errorhandler(self, exc, value)
    File "C:\Python25\lib\site-packages\MySQLdb\connections.py", line 35, in defaulterrorhandler
    raise errorclass, errorvalue
    _mysql_exceptions.OperationalError: (1050, "Table 'aomdb2_operation' already exists")
    C'est bien ce que tu as aussi?
    La documentation ne précise pas que l'on va avoir un plantage, mais juste que django ne modifiera pas une table déja créé...

  5. #5
    Rédacteur/Modérateur

    Avatar de Jiyuu
    Homme Profil pro
    Développeur amateur
    Inscrit en
    Janvier 2007
    Messages
    2 456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur amateur
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 456
    Points : 6 789
    Points
    6 789
    Billets dans le blog
    15
    Par défaut
    Citation Envoyé par etienne.clopeau Voir le message
    donc quand je fait une première synchro puis immédiatement une autre sans rien modifier, il est normal que je reçoive ce message?

    C'est bien ce que tu as aussi?
    La documentation ne précise pas que l'on va avoir un plantage, mais juste que django ne modifiera pas une table déja créé...

    En ce qui me concerne je travaille avec PySQL. Il ne me semble pas avoir ça... mais très sincèrement ça fait longtemps que je n'ai pas lancé une syncro alors que la bdd existe déjà.

  6. #6
    Expert éminent
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    3 925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 925
    Points : 7 328
    Points
    7 328
    Par défaut
    Bon j'y connais pas grand chose dans Django, mais est-ce que toutes tes applications sont installées. Tu peux apparement le vérifier dans le settings.py vers la fin du fichier

    INSTALLED_APPS

    Et ses options, tu devrais voir

    * django.contrib.auth -- Un système d'authentification.
    * django.contrib.contenttypes -- Un framework pour les types de contenu.
    * django.contrib.sessions -- Un framework gérant les sessions.
    * django.contrib.sites -- Un framework pour gérer plusieurs sites avec une seule installation de Django.
    Sinon je ne vois pas.

    Espérant t'avoir aider...

  7. #7
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 46
    Points : 33
    Points
    33
    Par défaut
    J'ai bien les bonnes application, plus la mienne.

    Bon, pour l'instant je vais adopter la solution de pacificator.

    je suis toujours preneur d'une solution si quelqu'un à une autre idée.

    Merci

  8. #8
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Non ce n'est pas normal qu'il te donne une erreur. Si les tables existent, le sync passe sans aucun message.

    Par contre, de but en blanc, je vois pas pourquoi il te mets cette erreur.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 46
    Points : 33
    Points
    33
    Par défaut
    J'ai également remarque que python manage.py reset appli ne fonctionne pas non plus.
    J'ai l'impression qu'il n'arrive pas à supprimer les tables...
    Y aurait-il des privilèges particuliés à donner que je n'aurait pas fait?

  10. #10
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Il faut que l'utilisateur avec lequel tu te connectes à la base de données (celui déclarer dans settings.py) ai tout les droits.

Discussions similaires

  1. probleme avec les base de données
    Par abaouiabdallah dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 01/04/2008, 09h53
  2. Petit probleme avec ma base de donnée
    Par lejujudu59 dans le forum Visual C++
    Réponses: 1
    Dernier message: 18/09/2007, 10h06
  3. Probleme avec module base de donnée
    Par k_boy dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/07/2007, 19h51
  4. Probleme avec Module Base de données (dbd32.exe)
    Par mekdar dans le forum Bases de données
    Réponses: 3
    Dernier message: 25/10/2005, 13h45
  5. probleme avec une base de donnée postgres SQL
    Par Alexlesilex dans le forum Bases de données
    Réponses: 1
    Dernier message: 19/06/2005, 22h09

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