Symfony2 - 向现有实体添加新字段

时间:2015-08-20 12:40:39

标签: symfony doctrine

首先,我是Symfony2的新手。

我创建了一个实体 - >基于该实体创建了一个表 - >使用实体创建了一个表单。

我现在意识到我需要在表单中添加一个字段。所以我做了以下事情:

添加了新属性 - >添加了ORM注释 - >生成了二传手和吸气剂 - >运行“php app / console doctrine:schema:update”

这导致以下异常:“名称为'XXX'的表已存在”

所以没有更新。知道我做错了什么吗?以下是我添加到实体的属性:

/**
 * @var text
 *
 * @ORM\Column(name="description", type="text")
 *
 * @Assert\NotBlank(message="Please insert a description")
 * @Assert\Length(max=100)
 *
 */
private $description;

2 个答案:

答案 0 :(得分:2)

尝试使用Doctrine Migrations Bundle。您要做的是 - 对已经部署的数据库进行更改 - 称为“数据库迁移”。我发现这个包很有帮助。

不运行“app / console doctrine:schema:update”,而是运行“app / console doctrine:migrations:diff”,它将比较您的数据库架构与更新后的实体,并生成sql代码以将其恢复同步中。

答案 1 :(得分:0)

我知道这是一个老问题。但我写作是因为它对其他人有用。

可能您没有在项目中使用注释。可能你的项目被设置为使用xml或yml。

你必须在$ proyect_home / app / config / config.yml检查你的配置并写入orm区域:

orm:
  ....
  mappings:
    AppBundle:
      type: annotation