php - 将 PostgreSQL DEFAULT 与 Doctrine 一起使用?

标签 php postgresql doctrine-orm doctrine

我有一个 PostgreSQL 数据库,我想与 Doctrine 一起使用。数据库在某些字段上具有默认值(例如 default nextval('transfer_seq'::regclass))。

当我尝试执行 orm:schema-tool:update 来更改数据库时,一切正常,但 Doctrine 坚持删除所有预先存在的默认值,使用 更改表 ext_requests 删除默认值

当然,忽略 DROP DEFAULT 行手动运行对数据库的更改有点微不足道,但我希望自动化该过程,所以不能直接使用更新命令似乎很愚蠢。

有没有办法告诉 Doctrine schema-tool 忽略对 PostgreSQL 默认值的任何更改?

(我知道我可以 use Doctrine @PrePersist to set defaults ,但由于 Doctrine 不是唯一使用数据库的客户端,所以这不是真正的解决方案。)

最佳答案

我可能是错的,但我认为您的要求是,在 Doctrine “生成值(value)”策略上使用身份函数。

以下代码段将在“主键”列上使用 Postgres 的“nextval()”功能。

/**
 * @var integer
 *
 * @ORM\Column(name="id", type="integer")
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
protected $id;

通过分配策略 IDENTITY,Doctrine 将监听数据库的默认值。

不确定其他“默认”值(非主列)是否有相同的解决方案

关于php - 将 PostgreSQL DEFAULT 与 Doctrine 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24009758/

相关文章:

subquery - Doctrine 2 子查询

php - 哪一个是 PHP 的最佳 PDF-API?

PHP:回显txt文件的几行选定的行

mysql - 使用 pg :backups restore 恢复表

postgresql - Postgres 和 Clojure JDBC 中的外键和字符限制

symfony - 调用 Doctrine 中未定义的方法 Slice

mysql - Doctrine 2 发出了不需要的查询,或者也许我错了,但这是必要的?

php - 连接数据库后执行函数

php - 使用 PHP 类来运行 mysql 查询这样不好吗?

postgresql - 具有有限域的文本字段 : to factor into sub-tables or not?