gpt4 book ai didi

php - 运行特定模式 :update | doctrine doesn't recognize table chages symfony2

转载 作者:行者123 更新时间:2023-11-29 13:47:50 25 4
gpt4 key购买 nike

我使用 Symfony 2.4 和 PostgreSQL。我手动(原始 SQL)向我的表添加了新列。在本地主机上一切正常,但在服务器上出现问题。当我运行 app/console doctrine:schema:update --dump-sql 它告诉它应该添加列(我已经手动添加)并执行一些其他 SQL 查询(我不不想跑)。

问题是 - 有没有办法只运行该列表中的一个特定查询 Schema-Tool 将执行“6”个查询来更新数据库。 或“让我知道”我的 Doctrine已经添加了新列,因为现在它会抛出错误(Symfony 在服务器上看不到我的新列)。

模型中的我的专栏

/**
* @var boolean $isEmailConfirmed
*
* @ORM\Column(name="isemailconfirmed", type="boolean", options={"default":FALSE})
*/
private $isEmailConfirmed;

我的原始 SQL 查询是:

alter table player add column isEmailConfirmed boolean default false not null;

我尝试清除缓存和清除 Doctrine 缓存,但没有帮助

最佳答案

首先,您手动添加了 isEmailConfirmed 列,它与 isemailconfirmed(区分大小写)不同,后者在 name="中定义isemailconfirmed" 在注释中。这就是 Doctrine 想要再次添加此专栏的原因。

第二件事是你可能还应该执行这 6 个查询中的另一个,因为其他方式可能会导致你的应用程序出现问题,因为真实的模式将与 Doctrine 期望的不同。

并回答您的问题:

不,没有办法告诉 Doctrine 只执行一个建议的查询或“告诉它你已经添加了这一列”,因为每次执行命令时它都会在运行时比较预期的模式和实际的模式.无论如何,不​​建议在生产环境中使用 doctrine:schema:update。推荐使用一些数据库迁移工具。例如。这个工作有 Doctrine Migrations 工具。

关于php - 运行特定模式 :update | doctrine doesn't recognize table chages symfony2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45589122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com