首先,我是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;
答案 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