我试图在PostgreSQL中的遗留数据库表周围包装一个教义模型,该表具有:
Column | Type | Modifiers
------------+--------------------------+------------------------------------------------------
id | integer | not null default nextval('table_name_id_seq'::regclass)
如果我尝试以下映射:
/**
* @ORM\Id
* @ORM\Column(name="id", type="integer", unique=true)
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
然后,模式更新工具为我提供了以下信息:
ALTER TABLE table_name ALTER id DROP DEFAULT;
如果我尝试显式定义默认值,例如:
/**
* @ORM\Id
* @ORM\Column(name="id", type="integer", unique=true, options={"default"="nextval('table_name_id_seq'::regclass)"})
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
然后它仍然给出:
ALTER TABLE table_name ALTER id SET DEFAULT nextval('table_name_id_seq'::regclass);
ALTER TABLE table_name ALTER id DROP DEFAULT;
最后,如果我尝试手动指定序列:
/**
* @ORM\Id
* @ORM\Column(name="id", type="integer", unique=true)
* @ORM\GeneratedValue(strategy="SEQUENCE")
* @ORM\SequenceGenerator(sequenceName="table_name_id_seq", initialValue=1, allocationSize=1)
*/
private $id;
我仍然得到DROP DEFAULT
:
ALTER TABLE table_name ALTER id DROP DEFAULT;
对于这个问题,是否有一个仍然允许使用模式更新工具的解决方法?我找不到与此相关的条令错误,但我可能遗漏了什么。这是最新的2.4版本。在Symfony 2.5下运行的X版条令。2.
尝试
*@ORM\GeneratedValue(策略="IDENTITY")