假设我已经设置了所有实体,并且我的存储库链接在这样的注释中:
/**
* User
* @ORM\Entity(repositoryClass="App\Repository\UserRepository")
* @ORM\Table(name="user")
*/
class User
{....}
现在我进入我的sql数据库并添加新列或任何其他更改。我需要更新教义模型,目前我是这样的:
1)php bin/console doctrine:mapping:import App\\Entity annotation --path=src/Entity
2)php bin/console make:entity --regenerate App
这些命令清除了我的实体注释,我得到了:
/**
* User
* @ORM\Entity
* @ORM\Table(name="user")
*/
class User
{....}
3)我必须手动重新链接每个实体中的所有存储库(我有12个)
问题:
有没有一种方法可以更新from database to entity
,同时将所有存储库链接保持在实体的顶部?你如何做到的?
我在学说手册中找不到任何东西;我希望设置为doctrine:mapping:import
吗?
答案 0 :(得分:3)
不是从数据库转到实体,而是通过另一种方式:从实体到数据库
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255, nullable=true)
*/
protected $name;
运行php bin/console doctrine:migrations:diff
,您将获得带有$this->addSql('ALTER TABLE user ADD name VARCHAR(255) DEFAULT NULL');
运行迁移
编辑
如果您仍然想走自己的路,至少可以通过在两个命令中都添加--filter="user"
来缩小对一个实体的更改