适当的迁移路径,用于在symfony2 / doctrine的现有实体中添加唯一标记列

时间:2016-03-29 15:32:29

标签: symfony doctrine-orm

我想向现有客户实体添加新的唯一令牌列。

我知道我需要更改客户类,更新架构,为每个客户创建唯一令牌。

这很容易在开发中,因为我只是擦除数据库中的数据并启动新的。但我不能在生产数据库上这样做。

那么,做出这种改变的适当或适当的方法是什么?

以下是对Customer.php的更改:

/**
 * Customer
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="AppBundle\Entity\CustomerRepository")
 * @UniqueEntity("urlToken")
 */
class Customer
{

...

/**
 * @var string
 *
 * @ORM\Column(name="urlToken", type="string", unique=true)
 */
private $urlToken;

1 个答案:

答案 0 :(得分:1)

在生产中部署架构更改的正确方法是使用Doctrine Migrations

1)修改实体类

2)生成学说迁移:

$ ./doctrine migrations:diff 

3)如有必要,更新教义代理类:

$ ./doctrine orm:generate:proxies

4)执行生产迁移:

$ ./doctrine migrations:migrate