原则ORM-从实体中删除属性?

Joh*_*kie -1 symfony doctrine-orm

我想做的事情很简单,但是我找不到解决方案。我已经开始使用与Doctrine捆绑在一起的Symfony4开发我的应用程序。最初,我设计了数据库模型,但是在开发过程中,我意识到原始解决方案对于我想做的事情是错误的方式。现在,我想从实体中删除一个属性。在普通的SQL中,我会ALTER TABLE table DROP COLUMN column然后使用新参数重新创建它。但是,该解决方案在Doctrine中给了我一个错误,因此我也更改了PHP模型。同样,另一个错误。好的,这看起来不像我想要的方式。除了在学说方面深入研究之外,我的问题是否有解决方案?最好的方法就是上面的SQL命令中所述的简单方法?

Elb*_*rto 5

在使用symfony进行教义时,您应该忽略表,列等,然后开始使用对象进行思考(否则,将教义用于抽象是没有意义的)。对于您的问题,您只需删除实体中的属性。

然后,您应该使用:

php bin/console doctrine:migrations:diff
Run Code Online (Sandbox Code Playgroud)

它将在/ migrations文件夹下生成一个迁移文件。该文件将包含该理论将执行的SQL。它使您可以验证查询是否符合您的期望,否则,您可以直接在该文件中对其进行修改或改编您的实体并生成一个新的迁移文件。

当您满意时,可以执行以下命令:

php bin/console doctrine:migrations:migrate
Run Code Online (Sandbox Code Playgroud)