为symfony2/原则在现有实体中添加唯一令牌列的正确迁移路径



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

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

这在开发中很容易,因为我只需从数据库中擦除数据并开始新的工作。但我不能在生产数据库上这样做。

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

以下是我对Customer.php的更改:

/**
 * Customer
 *
 * @ORMTable()
 * @ORMEntity(repositoryClass="AppBundleEntityCustomerRepository")
 * @UniqueEntity("urlToken")
 */
class Customer
{
...
/**
 * @var string
 *
 * @ORMColumn(name="urlToken", type="string", unique=true)
 */
private $urlToken;

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

1) 修改实体类

2) 生成条令迁移:

$ ./doctrine migrations:diff 

3) 必要时更新条令代理类:

$ ./doctrine orm:generate:proxies

4) 在生产上执行迁移:

$ ./doctrine migrations:migrate

最新更新