Bonjour,

je suis en train de me former sur symfony avec l'ORM propel, pour être précis je n'utilise pas le propel de base mais sfPropelORMPlugin.

J'ai fais le schema de ma base de donnée, une base très simple mais avec une relation many to many :

on a donc une table user ( id, nom, prénom, mail, année de naissance ), une table groupe ( id, nom ) et une table usergroup ( userId, goupId ).

Lorsque je fais la commande build-sql, pas de problème à première vue mais lorsque je lance insert-sql, j'ai l'erreur suivante :

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
[propel-sql-exec] Failed to execute: CREATE TABLE `usergroup`
(
        `userId` INTEGER NOT NULL,
        `groupId` INTEGER NOT NULL,
        `id` INTEGER NOT NULL AUTO_INCREMENT,
        PRIMARY KEY (`userId`,`groupId`,`id`),
        INDEX `usergroup_FI_2` (`groupId`),
        CONSTRAINT `usergroup_FK_1`
                FOREIGN KEY (`userId`)
                REFERENCES `user` (`id`),
        CONSTRAINT `usergroup_FK_2`
                FOREIGN KEY (`groupId`)
                REFERENCES `group` (`id`)
) ENGINE=InnoDB
[propel-sql-exec] SQLSTATE[42000]: Syntax error or access violation: 1075 Incorr
ect table definition; there can be only one auto column and it must be defined a
s a key
pourtant je ne lui demande pas de me créer de champs id pour cette table là.

Voici également mon fichier schema.yml :

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
propel:
 
  user:
    id:
      type: integer
      primarykey: true
      autoincrement: true
    name:
      type: varchar(100)
      required: true
      index: unique
    surname:
      type: varchar(100)
      required: true
      index: unique
    mail:
      type: varchar(100)
    yearOfBirth:
      type: integer
 
  group:
    id:
      type: integer
      primarykey: true
      autoincrement: true
    name:
      type: varchar(100)
 
  usergroup:
    _attributes:
      isCrossRef: true
    userId:
      type: integer
      foreignTable: user
      foreignReference: id
      primarykey: true
    groupId:
      type: integer
      foreignTable: group
      foreignReference: id
      primarykey: true
Est-ce qu'il y a un attribut a ajouter pour ne pas avoir de champs id ajouté automatiquement ?

Merci