我正在从实体元创建我的db脚本,使用$sqlSchema = $this->tool->createSchema($this->metas);
和此方法正确执行SQL,但由于某种原因,属性设置为nullable=false
,它没有显式设置NULL。
Generate from Doctrine:
CREATE TABLE my_table (
id INT IDENTITY NOT NULL,
name INT NOT NULL,
other_column INT,
other_column2 NVARCHAR(2500),
);
我需要什么:
CREATE TABLE my_table (
id INT IDENTITY NOT NULL,
name INT NOT NULL,
other_column INT NULL,
other_column2 NVARCHAR(2500) NULL,
);
这个脚本当我执行from doctrine时,所有不具有NULL的列显式地放置NOT NULL。如果我从客户端工具执行它的工作很好。如果我改变连接类型为MySQL,它执行良好,设置NULL和NOT NULL正确。
我使用的是Doctrine 2.3.4和SQLServer 2012。
谢谢。
这里的问题可能与实体定义中缺少的信息有关。
您应该尝试在实体注释或yml中定义一个默认值(在您的情况下为null),这取决于您的定义风格。此外,您应该通过nullable=true语句将您的字段标记为可空的。
注释的例子:
@ORM'Column(name="baz", [...], nullable=true, options={"default":null})
yml例子:
Entity'Entity_name:
type: entity
table: table_name
fields:
field_name:
type: string
nullable: true
options:
default: null
希望它有帮助,问候。