我认为这个问题的答案应该是:不。但我希望得到纠正。
我想使用 YAML标记+ Doctrine createTables()
和 Navicat编辑的混合编辑我们的数据库。我可以保留标记的继承吗?
示例(4个步骤,在步骤4,Doctrine无法重新创建继承模式......或者是吗?):
第1步:使用继承创建YAML
---
Entity:
columns:
username: string(20)
password: string(16)
created_at: timestamp
updated_at: timestamp
User:
inheritance:
extends: Entity
type: column_aggregation
keyField: type
keyValue: 1
Group:
inheritance:
extends: Entity
type: column_aggregation
keyField: type
keyValue: 2
第2步:使用Doctrine创建表(如果是nessecary则删除/创建db)
创建了sql:
CREATE TABLE entity (id BIGINT AUTO_INCREMENT,
username VARCHAR(20),
password VARCHAR(16),
created_at DATETIME,
updated_at DATETIME,
type VARCHAR(255),
PRIMARY KEY(id)) ENGINE = INNODB
第3步:使用Navicat编辑表格 第4步:由于“外部”编辑而刷新YAML文件...
答案 0 :(得分:1)
不幸的是,你是对的。
Doctrine继承对数据库模式没有影响,因此您将无法从sql转储重新创建继承yaml。它只更改Doctrine模型文件,在您的情况下,这基本上意味着User和Group类继承自Entity类。 (在列聚合继承的情况下,它还添加了一个“类型”列,其中包含类名)。
很抱歉,如果我的答案不是很清楚......:)
更多信息here。