Ik probeer een projectje te maken in Symfony met als ORM Doctrine.
Ik heb een bestaande MySQL 5.1.41 database en heb via de symfony commandline doctrine een schema laten genereren in YAML.
So far so good, ik kan daarna de DB goed aanmaken en de relations staan er ook bijna goed in.
Ik zeg bijna want de constraints worden niet goed overgenomen, alles staat op RESTRICT terwijl ik bijvoorbeeld CASCADE zou zien.
voorbeeld YAML:
Volgens de documentatie van Doctrine moet de constraint geplaats worden aan de kant waar de foreignkey excists (volgens mij in dit geval de tabel Locatie) maar ik heb beide geprobeerd en ze werken allebei niet. De relatie wordt gelegt, maar niet volgens CASCADE, als ik bijvoorbeeld een locatie koppel aan een organisatie en deze wil deleten kan ik dat niet doen tot de locatie eerst is verwijderd.
Wat gaat hier mis?
Ik heb een bestaande MySQL 5.1.41 database en heb via de symfony commandline doctrine een schema laten genereren in YAML.
So far so good, ik kan daarna de DB goed aanmaken en de relations staan er ook bijna goed in.
Ik zeg bijna want de constraints worden niet goed overgenomen, alles staat op RESTRICT terwijl ik bijvoorbeeld CASCADE zou zien.
voorbeeld YAML:
YAML:
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
42
43
44
45
46
47
48
49
50
51
52
53
54
| Locatie: connection: doctrine tableName: locatie columns: loc_id: type: integer(4) fixed: false unsigned: false primary: true autoincrement: true org_id: type: integer(4) fixed: false unsigned: false primary: false notnull: false autoincrement: false naam: type: string(30) fixed: false unsigned: false primary: false notnull: true autoincrement: false relations: Organisatie: local: org_id foreign: org_id type: one onDelete: CASCADE onUpdate: CASCADE Organisatie: connection: doctrine tableName: organisatie columns: org_id: type: integer(4) fixed: false unsigned: false primary: true autoincrement: true naam: type: string(30) fixed: false unsigned: false primary: false notnull: true autoincrement: false relations: Locatie: local: org_id foreign: org_id type: many |
Volgens de documentatie van Doctrine moet de constraint geplaats worden aan de kant waar de foreignkey excists (volgens mij in dit geval de tabel Locatie) maar ik heb beide geprobeerd en ze werken allebei niet. De relatie wordt gelegt, maar niet volgens CASCADE, als ik bijvoorbeeld een locatie koppel aan een organisatie en deze wil deleten kan ik dat niet doen tot de locatie eerst is verwijderd.
Wat gaat hier mis?