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

Symfony PHP Discussion :

Doublons dans schema.yml


Sujet :

Symfony PHP

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Par défaut Doublons dans schema.yml
    Bonjour,

    J'ai une petite question.
    J'ai modifié mon schema.yml hier en passant un primary qui était à true, à false !
    Mais quand je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    doctrine:build-model
    doctrine:build-forms
    doctrine:build-filters
    doctrine:build-schema
    Il me met des doublons dans mon schema.

    Par exemple, la table TType2traitement est en relation avec TTraitement et TMachine

    Voilà ce que j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    TType2traitement:
      connection: doctrine
      tableName: TType2traitement
      columns:
        numtype:
          type: integer(4)
          fixed: false
          unsigned: true
          primary: true
          autoincrement: true
        tmachine_nummachine:
          type: integer(4)
          fixed: false
          unsigned: true
          primary: false
          notnull: true
          autoincrement: false
        typetraitement:
          type: string(32)
          fixed: false
          unsigned: false
          primary: false
          notnull: true
          autoincrement: false
      relations:
        TMachine:
          local: tmachine_nummachine
          foreign: nummachine
          type: one
        TMachine_2:
          class: TMachine
          local: tmachine_nummachine
          foreign: nummachine
          type: one
        TTraitement:
          local: numtype
          foreign: ttype2traitement_numtype
          type: many
        TTraitement_6:
          class: TTraitement
          local: numtype
          foreign: ttype2traitement_numtype
          type: many
    Savez-vous ce qui peut me rajouter ces doublons ?

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Je ne suis pas sur de comprendre l'enchainement des modifications qui ont pu amener à un tel imbroglio au niveau du schema.yml.

    C'est le shema.yml qui sert de base aux commendes que tu as effectuées (doctrine:build-model, doctrine:build-forms , doctrine:build-filters)

    Par contre : doctrine:build-schema permet de générer un schema.yml a partir d'une base déjà existante et est utilisée, en principe, quant tu parts d'une base existante que tu ne peux modifier. Elle n'a, à priori, rien à faire dans tes commandes si c'est toi qui est à l'origine du schema.yml.


    Je pense que le plus simple serait de revenir à ton schema.yml d'origine et de générer tous ce dont tu as besoins par 'doctrine:build --all' qui crée les objets modèles, filtres, forms, le sql de la table et l'injecte dans la base. Du tous en un. Et de laisser doctrine:build-schema, pour son cas très spécifique et qui n'entre pas en ligne de compte ici.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 89
    Par défaut
    Merci

    Petite chose par contre,

    Voilà mon schéma :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    TDossier:
      connection: doctrine
      tableName: TDossier
      columns:
        numdossier:
          type: integer(4)
          fixed: false
          unsigned: true
          primary: true
          autoincrement: false
        annee:
          type: integer(8)
          fixed: false
          unsigned: false
          primary: false
          autoincrement: false
      relations:
        TMedaille:
          local: numdossier
          foreign: tdossier_numdossier
          type: many
    Quand je fais doctrine:build --all-classes
    Et que je regarde dans /lib/model/base/BaseTDossier.class.php
    Voilà ce qu'il me crée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    abstract class BaseTDossier extends sfDoctrineRecord
    {
        public function setTableDefinition()
        {
            $this->setTableName('TDossier');
            $this->hasColumn('numdossier', 'integer', 4, array(
                 'type' => 'integer',
                 'fixed' => 0,
                 'unsigned' => true,
                 'primary' => true,
                 'autoincrement' => false,
                 'length' => 4,
                 ));
            $this->hasColumn('annee', 'integer', 8, array(
                 'type' => 'integer',
                 'fixed' => 0,
                 'unsigned' => false,
                 'primary' => true,
                 'autoincrement' => false,
                 'length' => 8,
                 ));
        }
     
        public function setUp()
        {
            parent::setUp();
            $this->hasMany('TMedaille', array(
                 'local' => 'numdossier',
                 'foreign' => 'tdossier_numdossier'));
     
            $this->hasMany('TMedaille as TMedaille_7', array(
                 'local' => 'numdossier',
                 'foreign' => 'tdossier_numdossier'));
        }
    }
    Toujours mon histoire de doublons que je ne comprends pas.
    Mais dans mon schéma, j'ai bien spécifier que annee dans TDossier n'était pas une clé primaire. Pourquoi il le met tout de même en clé primaire dans BaseTDossier ?

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Essaye de faire :
    • doctrine:clean-model-files qui efface tous les fichiers inutiles. On ne sais jamais, mais j'y crois peu.
    • effaces le outs les dossiers dans lib;
    • Essaye sur une nouvelle appli vierge.


    Pour vois, dans l'ordre de mes espoirs (du lus simple mais moins probable au plus long mais plus sur).

Discussions similaires

  1. [Doctrine] Relation entre deux tables dans schema.yml sans contrainte
    Par ninorotto dans le forum ORM
    Réponses: 8
    Dernier message: 24/08/2011, 10h26
  2. [1.x] Relations many to many dans schema.yml
    Par titiyoyo dans le forum Symfony
    Réponses: 21
    Dernier message: 10/09/2010, 13h24
  3. [1.x] Erreur propel-build-model dans schema.yml?
    Par charliejo dans le forum Symfony
    Réponses: 2
    Dernier message: 19/10/2009, 14h07
  4. [1.x] clés primaire dans schema.yml
    Par kamdad dans le forum Symfony
    Réponses: 13
    Dernier message: 24/04/2009, 15h58
  5. [1.x] index=unique dans schema.yml
    Par kamdad dans le forum Symfony
    Réponses: 4
    Dernier message: 23/04/2009, 17h55

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