Doctrine : construction du schéma à partir de la BDD
Bonjour à tous,
Je suis en stage dans un labo et je dois migrer un site web pour le recréer à partir du framework symfony. Je part d'un BDD assez grosse (45 tables) et j'aimerai savoir ce que je dois corriger quand je génère le schéma à partir de celle-ci.
De ce que j'ai trouvé sur le web, je dois refaire les relations N:N qui ne sont pas détectées mais quand je le fait et que je génère un backend, les listes créées par les relations N:N ne fonctionnent pas en édition et création.
Par exemple :
Schéma :
Person -> PersonAcitivity <- Activity
Table Person :
Code:
1 2 3 4 5
| PersonActivity:
local: activity_id
foreign: person_id
class: Activity
refClass: PersonActivity |
Table Activity :
Code:
1 2 3 4 5
| PersonActivity:
local: person_id
foreign: activity_id
class: Person
refClass: PersonActivity |
Table PersonActivity :
Code:
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
| PersonActivity:
connection: doctrine
tableName: person_activity
columns:
person_id:
type: integer(4)
fixed: false
unsigned: true
primary: true
autoincrement: false
activity_id:
type: integer(4)
fixed: false
unsigned: true
primary: true
autoincrement: false
relations:
Person:
local: person_id
foreign: id
type: one
Activity:
local: activity_id
foreign: id
type: one |
et si je veut filtrer ou éditer une personne, je me retrouve avec l'erreur :
Code:
1 2
| 500 | Internal Server Error | Doctrine_Connection_Mysql_Exception
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'p2.id' in 'on clause' |
Deuxième question, que dois-je faire des relations many to one comme par exemple dans Person :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Resource:
local: id
foreign: person_id
type: many
Resource_4:
class: Resource
local: id
foreign: person_contact_id
type: many
Resource_5:
class: Resource
local: id
foreign: person_responsible_id
type: many
Resource_6:
class: Resource
local: id
foreign: person_updater_id
type: many
Task:
local: id
foreign: person_id
type: many |
alors que les clés sont dans l'autre table (task, resource,...).