我尝试使用Symfony创建新的迁移:
$ php app/console doctrine:migrations:generate
Generated new migration class to "/path/to/project/app/DoctrineMigrations/Version20100621140655.php"
但我希望使用名称Version20100621140655_MyName.php
创建迁移,而不是Version20100621140655.php
。我怎么能这样做?
修改
答案 0 :(得分:2)
除了创建自己的命令之外,没有办法做到这一点。
您可以在the code中看到类名Version<version>
,文件名显然必须与此相同。
使用$version = date('YmdHis')
创建版本here。
为了好处(文件和类名的后缀),我怀疑添加此功能是否值得。您可以随时轻松地更改命名空间,但是如果您想使用...
将其保留在应用程序命名空间中应用程序/配置/ config_dev.yml
doctrine_migrations:
...
namespace: Your\Migrations\Namespace
答案 1 :(得分:1)
重命名文件并更改班级名称:
class Version20100621140655_MyName extends AbstractMigration
{
//
编辑:似乎不起作用,Doctrine正在报告新的迁移但无法执行...
答案 2 :(得分:1)
由于我是通过谷歌搜索来到这里的,没有一个答案可以为我提供直接解决方案,因此我通过查看GitHub问题和Doctrine文档来弄清了它。
我尝试了来自COil的建议答案,但是由于if(paragraph.getNumChildren() != 0){
表中的versions
字段默认情况下设置为varchar(14),因此迁移后检查失败。由于名称很可能会长于该名称,因此大多数时候您都会遇到此错误。
解决方案是调整migration_versions
文件并添加doctrine_migrations.yaml
(在我的情况下为60)。
column_length: YOUR_PREFERRED_LENGTH
现在,您始终可以手动重命名迁移文件,并在该文件中相应地调整类名,例如调整为doctrine_migrations:
...
column_length: 60
。
Version20100621140655_MyName.php