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 :

problème de modification model de donnée


Sujet :

Django Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de guiyomh
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 328
    Par défaut problème de modification model de donnée
    Bonjour,

    je débute avec Django, je suis les tuto 1 par 1. Une fois le tuto appliqué, je reviens sur le code pour tenté de l'adapté un peu. Je me heurte à un pb lors de la modification des modèles de donnée.

    j'ai tout bêtement ajouter un champs texte supplémentaire par rapport au tuto, mais j'ai un problème de resynchronisation de la base de donnée.
    J'ai trouvé un truc "South", mais je sais pas trop ce que c'est. Est ce vraiment ça qu'il faut utiliser et comment ?

    je veux juste ajouter un champs et regénérer la base. Il n'y a pas une commande prévue pour ça dans django ?

    merci pour vos aide

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 51
    Par défaut
    Salut,
    non, il n’y a pas de commande pour faire cela avec Django, tu dois le faire avec la ligne de commande de MySQL…

    Dans, certains cas, tu peux supprimer tes tables (donc perte des données) et resynchroniser.

    À plus !

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    116
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 116
    Par défaut
    Tu peux réinitialiser ton appli avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./manage.py reset tonappli
    Ou alors modifier la table. Tu récupères la structure sql comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./manage.py sql tonappli
    Et tu mets à jour ta table comme avec le shell sql:

  4. #4
    Membre éclairé Avatar de guiyomh
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 328
    Par défaut
    merci je vais tester ça

  5. #5
    Membre confirmé
    Profil pro
    Développeur Back-End
    Inscrit en
    Septembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Septembre 2007
    Messages : 81
    Par défaut Proposition
    Salut,
    tu peux utiliser south. il te permet de modifier ton model.
    tu l'installe et le met dans la liste de tes INSTALLED_APPS.
    ensuite tu fais 'manage.py schemamigration mon_model --initial' puis 'manage.py migrate mon_model'.

    PS: --initial si c'est la première fois que utilise south sur ton model sinon utilise --auto.

  6. #6
    Membre éclairé Avatar de guiyomh
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    328
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 328
    Par défaut
    Je reviens vers vous, j'ai enfin trouver le temps d'appliquer vos bon conseils.
    J'essaye de me lancer avec south, mais j'ai une grosse erreur :
    Running migrations for xtime:
    - Migrating forwards to 0001_initial.
    > xtime:0001_initial
    Traceback (most recent call last):
    File "manage.py", line 11, in <module>
    execute_manager(settings)
    File "/usr/local/lib/python2.6/dist-packages/django/core/management/__init__.py", line 438, in execute_manager
    utility.execute()
    File "/usr/local/lib/python2.6/dist-packages/django/core/management/__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
    File "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 191, in run_from_argv
    self.execute(*args, **options.__dict__)
    File "/usr/local/lib/python2.6/dist-packages/django/core/management/base.py", line 220, in execute
    output = self.handle(*args, **options)
    File "/usr/local/lib/python2.6/dist-packages/South-0.7.2-py2.6.egg/south/management/commands/migrate.py", line 105, in handle
    ignore_ghosts = ignore_ghosts,
    File "/usr/local/lib/python2.6/dist-packages/South-0.7.2-py2.6.egg/south/migration/__init__.py", line 191, in migrate_app
    success = migrator.migrate_many(target, workplan, database)
    File "/usr/local/lib/python2.6/dist-packages/South-0.7.2-py2.6.egg/south/migration/migrators.py", line 221, in migrate_many
    result = migrator.__class__.migrate_many(migrator, target, migrations, database)
    File "/usr/local/lib/python2.6/dist-packages/South-0.7.2-py2.6.egg/south/migration/migrators.py", line 292, in migrate_many
    result = self.migrate(migration, database)
    File "/usr/local/lib/python2.6/dist-packages/South-0.7.2-py2.6.egg/south/migration/migrators.py", line 125, in migrate
    result = self.run(migration)
    File "/usr/local/lib/python2.6/dist-packages/South-0.7.2-py2.6.egg/south/migration/migrators.py", line 99, in run
    return self.run_migration(migration)
    File "/usr/local/lib/python2.6/dist-packages/South-0.7.2-py2.6.egg/south/migration/migrators.py", line 81, in run_migration
    migration_function()
    File "/usr/local/lib/python2.6/dist-packages/South-0.7.2-py2.6.egg/south/migration/migrators.py", line 57, in <lambda>
    return (lambda: direction(orm))
    File "/home/gcamus/PROJETS/warsa/../warsa/xtime/migrations/0001_initial.py", line 18, in forwards
    ('created_at', self.gf('django.db.models.fields.DateTimeField')()),
    File "/usr/local/lib/python2.6/dist-packages/South-0.7.2-py2.6.egg/south/db/generic.py", line 213, in create_table
    ', '.join([col for col in columns if col]),
    File "/usr/local/lib/python2.6/dist-packages/South-0.7.2-py2.6.egg/south/db/generic.py", line 137, in execute
    cursor.execute(sql, params)
    File "/usr/local/lib/python2.6/dist-packages/django/db/backends/util.py", line 15, in execute
    return self.cursor.execute(sql, params)
    File "/usr/local/lib/python2.6/dist-packages/django/db/backends/sqlite3/base.py", line 200, in execute
    return Database.Cursor.execute(self, query, params)
    django.db.utils.DatabaseError: table "xtime_activity" already exists
    Pour expliqué ce que j'ai fait :
    • j'ai modifié mon model
    • j'ai installer south et je l'ai ajouter dans setting.py
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      INSTALLED_APPS = (
          'django.contrib.auth',
          'django.contrib.contenttypes',
          'django.contrib.sessions',
          'django.contrib.sites',
          'django.contrib.messages',
          # Uncomment the next line to enable the admin:
          # 'django.contrib.admin',
          # Uncomment the next line to enable admin documentation:
          # 'django.contrib.admindocs',
          'south',
          #warsa app
          'warsa.xtime',
      )
    • j'ai lancer les commande :
      python manage.py schemamigration xtime --initial
      python manage.py syncdb
      python manage.py migrate xtime

    et là grosse erreurs. j'ai surment pas fais les chose dans le bon sens, est ce grave, comment faire pour réparer ?

    merci

  7. #7
    Membre confirmé
    Profil pro
    Développeur Back-End
    Inscrit en
    Septembre 2007
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Back-End

    Informations forums :
    Inscription : Septembre 2007
    Messages : 81
    Par défaut
    Avec south tu n'as plus besoin de python manage.py syncdb pour creer les tables de tes models en bd.
    la doc ici: http://south.aeracode.org/docs/

Discussions similaires

  1. [Débutant] Problème de modification de données de type date
    Par hugnka dans le forum VB.NET
    Réponses: 11
    Dernier message: 11/05/2012, 08h20
  2. Réponses: 0
    Dernier message: 20/07/2010, 20h35
  3. [MySQL] problème de modification dans base de données
    Par Pauleta31 dans le forum PHP & Base de données
    Réponses: 28
    Dernier message: 04/06/2010, 14h23
  4. [MySQL] Problème modification Base de données
    Par TiGeR33600 dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 30/10/2008, 17h02
  5. [MySQL] problème de modification (base de données)
    Par djey08 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 09/05/2007, 11h26

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