salut à tous.
J'ai un problème avec le comportement ondelete de Propel.
Je vous fais part d'une version simplifiée de mon schéma :
<table name="project" phpName="Project">
<column name="id" type="INTEGER" primaryKey="true" required="true"
autoIncrement="true"/>
<column name="project_id" type="INTEGER"/>
<column name="name" type="VARCHAR" required="true" size="255"/>
<column name="priority_id" type="INTEGER" required="true"/>
<foreign-key foreignTable="priority" onDelete="restrict">
<reference local="priority_id" foreign="id"/>
</foreign-key>
</table>
<table name="priority" phpName="Priority">
<column name="id" type="INTEGER" primaryKey="true" required="true"
autoIncrement="true"/>
<column name="name" type="VARCHAR" required="true" size="255"/>
</table>
Si j'ai bien compris le fontcionnement de onDelete, cela signifie que
si j'ai un objet projet associé à une priorité et que je souhaite
supprimer cette priorité, en lui donnant la valeur "restrict" je
soulève une erreur et symfony ne l'autorisera pas.
Si j'utilise MyIsam, mon application ignore complétement onDelete et
supprime l'objet priorité et les projets associés! Je pense que ca
devrait fonctionner en utisant le moteur myIsam, non ?
http://propel.phpdb.org/trac/wiki/Users/Documentation/1.2/FAQ#DoIneedtouseInnoDBtableswithMySQL
Si j'utilise innoDB, propel-insert-sql soulève une erreur lors de la
creation de la table projet!
Si j'execute la requete de creation de la table projet manuellement,
j'ai l'erreur suivante :
#1005 - Can't create table '.....' (errno: 150)
Je pense que MyIsam est plus approprié à mon application, en passant.
j'utilise sf1.0.17 et mysql5.0.45
Merci de m'éclairer, je galère!
simo