在迁移期间添加新的枚举列

Rui*_*ves 9 migration doctrine symfony1

任何人都可以请告诉我如何为我的架构添加一个类型枚举的新列以实现Doctrine Migration?

gpi*_*ino 20

  1. 修改您的架构

  2. ./symfony doc:generate-migrations-diff

    这将生成lib/migrations/doctrine /中的一个或多个文件

  3. ./symfony doc:migrate

    这会将生成的迁移应用于数据库

  4. ./symfony doc:build --all-classes

    这适用于symfony> = 1.3/1.4,并将根据修改的模式重建所有表单/过滤器/模型类

请记住,生成的迁移是将新的schema.yml与当前的模型类进行比较,因此如果在运行generate-migrations-diff之前重建类,则会被搞砸.


小智 5

如果您需要自己编写迁移脚本,这里有一个语法示例——我还没有在任何地方找到正确的语法规范。

$this->addColumn('tablename', 'column_name', 'enum', false, 
                  array('fixed' => 1,
                        'values' => 
                         array(0 => 'auto',
                               1 => 'manual',
                               2 => 'unknown'),
                         'default' => 'unknown',
                         'notnull' => true,
                         'length' => NULL,
                   ));
Run Code Online (Sandbox Code Playgroud)


ken*_*ken 0

修改您的架构,但不要构建模型。运行doctrine schema diff,然后将为您生成一个迁移类。最后你可以重建你的模型/表单/过滤器