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 :

Doctrine : importer relations dans schema.yml à partir d'une base existante [1.x]


Sujet :

Symfony PHP

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Doctrine : importer relations dans schema.yml à partir d'une base existante
    Bonjour,

    J'ai conçu et créé une base de donnée en MySQL (moteur: InnoDB) sur mon serveur de développement. Au lieu de me taper à la main l'écriture du fichier schema.yml, j'ai décidé de l'importer directement à partir de la base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ php symfony doctrine:build-schema
    Ça a l'air de fonctionner : le fichier schema.yml est rempli de noms de tables, de champs et de relations.

    Mais deux choses me semblent louches :

    Premièrement, j'ai l'impression que les relations du type onDelete: cascade n'apparaissent pas.

    Exemple :
    J'ai une table Offre dont chaque entrée dépend nécessairement d'un Produit (entrée de la table du même nom). Si je supprime le Produit A, toutes les offres associées à A doivent disparaître. Ce qui se traduit par une contrainte en MySQL.
    Voici ce que j'ai dans schema.yml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Offer:
      connection: doctrine
      tableName: offer
      columns:
        id:
          #...
      relations:
        Product:
          local: product_id
          foreign: id
          type: one
    Au lieu de type: one, je m'attendais plutôt à trouver quelque chose du genre onDelete: CASCADE, comme on peut le voir ici.

    Est-ce équivalent ?

    Deuxième interrogation :
    Dans ma table Client, le champ email doit être unique. Ce qui donne, côté MySQL : un index name_UNIQUE sur la colonne name, cet index étant configuré pour être unique.
    Ce que je ne comprends pas, c'est que dans schema.yml, le mot-clé "unique" n'apparaît pas du tout. Et voici la seule occurrence de "email" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    email:
          type: string(255)
          fixed: false
          unsigned: false
          primary: false
          notnull: false
          autoincrement: false
    Je ne vois pas comment le modèle symfony pourra comprendre que le champ email de la table Client doit être unique. Vous avez une explication ?

    Merci beaucoup pour votre lecture.
    Dernière modification par Invité ; 31/01/2012 à 18h37.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/08/2013, 15h18
  2. Réponses: 1
    Dernier message: 19/07/2012, 14h41
  3. mcd à partir d'une base existante?
    Par melodide dans le forum Outils
    Réponses: 2
    Dernier message: 12/12/2010, 13h29
  4. [1.x] Relations many to many dans schema.yml
    Par titiyoyo dans le forum Symfony
    Réponses: 21
    Dernier message: 10/09/2010, 13h24
  5. Afficher des données dans un datagrid à partir d'une base de données MySQL
    Par General_Garrisson dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 13/07/2006, 15h14

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