我想向现有客户实体添加新的唯一令牌列。
我知道我需要更改客户类,更新架构,为每个客户创建唯一令牌。
这很容易在开发中,因为我只是擦除数据库中的数据并启动新的。但我不能在生产数据库上这样做。
那么,做出这种改变的适当或适当的方法是什么?
以下是对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;
答案 0 :(得分:1)
在生产中部署架构更改的正确方法是使用Doctrine Migrations。
1)修改实体类
2)生成学说迁移:
$ ./doctrine migrations:diff
3)如有必要,更新教义代理类:
$ ./doctrine orm:generate:proxies
4)执行生产迁移:
$ ./doctrine migrations:migrate