|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre régulier
![]() Inscription : janvier 2005 Messages : 157 ![]() |
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 : Ç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 :
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 :
Merci beaucoup pour votre lecture. |
||||
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() |
Oui doctrine génère une grosse partie du schema.yml mais il ne sait pas tout faire le reste il faut que tu le face toi même. Pour cela tu as la doc doctrine très bien expliqué.
Le est la déclaration d'une liaison entre 2 tables et non une indication pour un delete. C'est bien qui permet de faire ça. Doctrine ne récupère pas les indexes, clé unique, etc. Si tu veux un fichier bien plus complet je te conseil d'utiliser mysqlworkbench avec le plugin doctrine, il te génère un fichier plus complet. |
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : janvier 2005 Messages : 157 ![]() |
D'accord, c'est bien ce que je pensais. Merci pour ta réponse !
Et ça tombe bien, j'ai justement utilisé MySQLWorkBench pour concevoir ma base de données. Est-ce que l'utilisation du schema exporter au lieu du plugin (ancien projet, apparemment) est éprouvée, voire recommandée ? Question subsidiaire : déclarer un lien entre deux tables me paraît tout à fait facultatif du moment que j'inclus une contrainte d'intégrité des données (du genre ON DELETE CASCADE). Est-ce vrai ? |
|
|
00
|
|
|
#4 | |
|
Membre chevronné
![]() |
Citation:
Il est préférable d'avoir plus d'options que pas assez. Pour le plugin, je n'utilise que le plugin (sur la toute dernière version de mysqlworkbench), je ne connais pas l'autre. |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com