Nautilebleu, merci encore,
Je n'ai mis qu'une FK on delete cascade, je voulais tester, en théorie
il doit y en avoir partout.
Peut être cela vient-il aussi des configs propel.ini (encore plus en
dessous), pourtant j'ai ajouté "propel.mysql.tableType = InnoDB".
Tu vois mieux ce qui cloche ?
propel:
gabarit:
_attributes: { phpName: Gabarit }
id:
gabarit_id:
titre: varchar(50)
css: varchar(255)
template: varchar(255)
description: varchar(255)
created_at:
updated_at:
configsite:
_attributes: { phpName: Configsite }
id:
gabarit_id:
titre_bloc_lien: varchar(50)
menu1: tinyint
menu2: tinyint
bloc_visible: tinyint
created_at:
updated_at:
configpagelien:
_attributes: { phpName: Configpagelien }
id:
titre: varchar(50)
titre_menu: varchar(50)
meta_description: varchar(255)
meta_title: varchar(50)
url: varchar(255)
titre_partenaire: varchar(50)
type_page: tinyint
en_ligne: tinyint
nb_lien_max: tinyint
majeur: tinyint
mineur: tinyint
annexe: tinyint
majeur_partenaire: tinyint
mineur_partenaire: tinyint
annexe_partenaire: tinyint
created_at:
updated_at:
categorie:
_attributes: { phpName: Categorie }
id: { type: integer, required: true, primaryKey:
true, autoincrement: true }
categorie_id:
configsite_id:
configpagelien_id:
titre: varchar(50)
description: varchar(255)
created_at:
updated_at:
lien:
_attributes: { phpName: Lien }
id: { type: integer, required: true, primaryKey:
true, autoincrement: true }
site_id:
categorie_id:
url: varchar(255)
visible: tinyint
niveau: tinyint
proprietaire: tinyint
date_mise_en_ligne: date
created_at:
updated_at:
lienimage:
_attributes: { phpName: Lienimage }
id: { type: integer, required: true,
primaryKey: true, autoincrement: true }
image: varbinary
created_at:
updated_at:
lientitre:
_attributes: { phpName: Lientitre }
id: { type: integer, required: true,
primaryKey: true, autoincrement: true }
lien_id:
titre: varchar(50)
type_titre: tinyint
classement: tinyint
created_at:
updated_at:
liendescription:
_attributes: { phpName: Liendescription }
id: { type: integer, required: true,
primaryKey: true, autoincrement: true }
lien_id:
description: longvarchar
classement: tinyint
created_at:
updated_at:
motcle:
_attributes: { phpName: Motcle }
id:
mot: varchar(50)
created_at:
updated_at:
motcle_lien:
_attributes: { phpName: MotcleLien }
id:
motcle_id: { type: integer, foreignTable: motcle,
foreignReference: id, onDelete: cascade }
lien_id:
classement: tinyint
created_at:
updated_at:
motcle_site:
_attributes: { phpName: MotcleSite }
motcle_id:
site_id:
classement: tinyint
created_at:
updated_at:
site:
_attributes: { phpName: Site }
id: { type: integer, required: true,
primaryKey: true, autoincrement: true }
configsite_id:
configpagelien_id:
titre: varchar(50)
baseline: varchar(255)
en_ligne: tinyint
created_at:
updated_at:
rubrique:
_attributes: { phpName: Rubrique }
id: { type: integer, required: true,
primaryKey: true, autoincrement: true }
site_id:
titre: varchar(255)
titre_menu: varchar(50)
meta_description: varchar(255)
meta_title: varchar(50)
url: varchar(255)
en_ligne: tinyint
classement: tinyint
created_at:
updated_at:
article:
_attributes: { phpName: Article }
id: { type: integer, required: true,
primaryKey: true, autoincrement: true }
rubrique_id:
titre: varchar(255)
sous_titre: varchar(255)
chapo: longvarchar
article: longvarchar
url: varchar(255)
en_ligne: tinyint
created_at:
updated_at:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
propel.targetPackage = lib.model
propel.packageObjectModel = true
propel.project = monprojet
propel.database = mysql
propel.database.createUrl = mysql://root:@localhost
propel.database.url = mysql://root:@localhost/monprojet
propel.addGenericAccessors = true
propel.addGenericMutators = true
propel.addTimeStamp = false
propel.schema.validate = false
; directories
propel.home = .
propel.output.dir = D:\programmation\wamp\www\monprojet
propel.schema.dir = ${propel.output.dir}/config
propel.conf.dir = ${propel.output.dir}/config
propel.phpconf.dir = ${propel.output.dir}/config
propel.sql.dir = ${propel.output.dir}/data/sql
propel.runtime.conf.file = runtime-conf.xml
propel.php.dir = ${propel.output.dir}
propel.default.schema.basename = schema
propel.datadump.mapper.from = *schema.xml
propel.datadump.mapper.to = *data.xml
; builder settings
propel.builder.peer.class =
addon.propel.builder.SfPeerBuilder
propel.builder.object.class =
addon.propel.builder.SfObjectBuilder
propel.builder.objectstub.class =
addon.propel.builder.SfExtensionObjectBuilder
propel.builder.peerstub.class =
addon.propel.builder.SfExtensionPeerBuilder
propel.builder.objectmultiextend.class =
addon.propel.builder.SfMultiExtendObjectBuilder
propel.builder.mapbuilder.class =
addon.propel.builder.SfMapBuilderBuilder
propel.builder.interface.class =
propel.engine.builder.om.php5.PHP5InterfaceBuilder
propel.builder.node.class =
propel.engine.builder.om.php5.PHP5NodeBuilder
propel.builder.nodepeer.class =
propel.engine.builder.om.php5.PHP5NodePeerBuilder
propel.builder.nodestub.class =
propel.engine.builder.om.php5.PHP5ExtensionNodeBuilder
propel.builder.nodepeerstub.class =
propel.engine.builder.om.php5.PHP5ExtensionNodePeerBuilder
propel.builder.addIncludes = false
propel.builder.addComments = false
propel.builder.addBehaviors = false
;propel.emulateForeignKeyConstraints = true
propel.mysql.tableType = InnoDB
On 24 mai, 09:20, nautilebleu <[EMAIL PROTECTED]> wrote:
> Hum, je ne vois pas trop ce qui cloche. Tu peux mettre ton fichier
> schema.yml ?
>
> Nautile
>
> On 23 mai, 17:07, xescorp <[EMAIL PROTECTED]> wrote:
>
> > Merci nautilbleu pour ta réponse,
>
> > Pour le PhpName, c'était un test, puisque cela ne marchait pas
> > auparavant :D
>
> > Bien vu pour l'InnoDB :D
>
> > Le fichier YAML ci-dessus (en modifiant "foreignTable: Motcle" par
> > "foreignTable: motcle") donne le SQL ci-dessous.
> > Il y a bien les index ?
> > Sinon dans PhpMyAdmin un "DELETE motcle_lien" ne supprime pas les
> > lignes correspondantes dans la table "motcle", j'ai donc raté
> > quelquechose, suis-je stupide ?
>
> > CREATE TABLE `motcle`
> > (
> > `id` INTEGER NOT NULL AUTO_INCREMENT,
> > `mot` VARCHAR(50),
> > PRIMARY KEY (`id`)
> > )Type=InnoDB;
>
> > CREATE TABLE `motcle_lien`
> > (
> > `id` INTEGER NOT NULL AUTO_INCREMENT,
> > `motcle_id` INTEGER,
> > `lien_id` INTEGER,
> > `classement` TINYINT,
> > PRIMARY KEY (`id`),
> > INDEX `motcle_lien_FI_1` (`motcle_id`),
> > CONSTRAINT `motcle_lien_FK_1`
> > FOREIGN KEY (`motcle_id`)
> > REFERENCES `motcle` (`id`)
> > ON DELETE CASCADE,
> > INDEX `motcle_lien_FI_2` (`lien_id`),
> > CONSTRAINT `motcle_lien_FK_2`
> > FOREIGN KEY (`lien_id`)
> > REFERENCES `lien` (`id`)
> > )Type=InnoDB;
>
> > On 22 mai, 16:34, nautilebleu <[EMAIL PROTECTED]> wrote:
>
> > > Si ta table est en InnoDB, tu n'as pas besoin d'émuler: MySQL le fera
> > > tout seul !
>
> > > Il me semble que dans le schema, il faut donner comme nom de
> > > foreignTable le nom de la table et pas le phpName (càd dans ton cas:
> > > motcle et pas Motcle) Il faut aussi des index dans la definition de la
> > > jointure.
>
> > > Nautile
>
> > > On 22 mai, 15:32, xescorp <[EMAIL PROTECTED]> wrote:
>
> > > > J'ai l'impression d'avoir tout fait pour que l'émulation d'On Delete
> > > > Cascade passe sous Mysql.
>
> > > > 1- J'ai ajouté dans propel.ini la ligne :
> > > > propel.emulateForeignKeyConstraints = true
>
> > > > 2- Dans mon schema.yml, j'ai ajouté { type: integer, foreignTable:
> > > > Motcle, foreignReference: id, onDelete: cascade } à ma clé étrangère :
>
> > > > propel:
> > > > motcle:
> > > > _attributes: { phpName: Motcle }
> > > > id:
> > > > mot: varchar(50)
>
> > > > motcle_lien:
> > > > _attributes: { phpName: MotcleLien }
> > > > id:
> > > > motcle_id: { type: integer, foreignTable: Motcle,
> > > > foreignReference: id, onDelete: cascade }
> > > > lien_id:
> > > > classement: tinyint
>
> > > > 3- J'ai fait mon "symfony propel-build-all-load fo"
>
> > > > 4- Cependant quand je fais mon $motcleLienDelete->delete(); , les
> > > > infos de la table "motcle" ne sont pas supprimés.
>
> > > > Je n'ai rien trouvé d'autres de concluant sur le Forum. Ai-je raté
> > > > quelquechose ?
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr"
de Google Groupes.
Pour transmettre des messages à ce groupe, envoyez un e-mail à
l'adresse [email protected]
Pour résilier votre abonnement à ce groupe, envoyez un e-mail à
l'adresse [EMAIL PROTECTED]
Pour afficher d'autres options, visitez ce groupe à l'adresse
http://groups.google.com/group/symfony-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---