DoctrineMigratiesBundle.

版本: 当前的
编辑此页

原则:模式:更新命令或使用SQL语句手动应用数据库更改,迁移允许以安全的方式复制数据库架构中的更改。

Symfony应用程序中的迁移可通过ob娱乐下载DoctrineMigratiesBundle.,它使用外部教义数据库迁移图书馆。读了欧宝官网下载app如果您需要有关迁移的一般介绍,请访问该库。

如果你不使用ob娱乐下载Symfony Flex.,则必须在应用程序中手动启用该bundle:

1 2 3 4 5 6
//config/bundles.php//在旧的Symfonyob娱乐下载应用程序中,在app/AppKernel.php中启用bundle返回// ......doctrine \ bundle \ migrationsbundle \ doctrinemigratilebundle::class => [“所有”=>真的]];

doctrine_migrations.yaml配置文件自动创建。否则,创建以下文件并为您的应用程序配置:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
#配置/包/ doctrine_migrations.yamldoctrine_migration:#用于搜索迁移的命名空间/路径对列表,至少需要一个migrations_paths:'app \迁移''%kernel.project_dir%/ src / app'“其他应用程序\迁移”“/道路/ /其他/迁移”'somebundle \迁移''@ somebundle /迁移'要加载的其他迁移类列表,可选迁移:-'app \ miagrations \ version123'-'app \ miagrations \ version123'#连接用于迁移连接:默认#tority Manager用于迁移。这会覆盖“连接”设置。新兴市场:默认存储:#默认(SQL表)元数据存储配置table_storage:table_name:'doctrine_migration_versions'version_column_name:“版本”Version_column_Length:192executed_at_column_name:'executed_at'#可能值:“BY_YEAR”,“BY_YEAR_AND_MONTH”,falseorganize_migrations:##路径到您的自定义迁移模板custom_template:#在事务中运行所有迁移。all_or_nothing:#在生成的迁移中添加一个额外的检查,以确保在相同的数据库类型上执行。check_database_platform:真的服务:#自定义迁移排序服务ID“教义\ \迁移\版本比较器”自定义迁移类工厂'Doctrine \迁移\ version \ migrationFactory'工厂:#通过可调用对象自定义迁移排序服务id (MyCallableFactory必须是可调用对象)“教义\ \迁移\版本比较器”'mycallablefactory'
  • 服务Node允许您向底层提供自定义服务依赖等物理部分教义/迁移
  • 节点工厂类似于服务,差异是它只接受可胼kable。

所提供的可调用对象必须返回要传递给依赖等物理.可调用对象将接收作为第一个参数的依赖等物理它本身,允许您在实例化自定义依赖项时从工厂获取其他依赖项。

通过在应用程序中运行状态命令:

1
php bin/控制台原则:迁移:状态

这个命令将显示关于迁移状态的一般信息,例如已经执行了多少迁移,哪些迁移仍然需要运行,以及正在使用的数据库。

现在,您可以通过生成新的空白迁移类开始使用迁移。稍后,您将了解Doctrine如何为您自动生成迁移。

1
php bin /控制台学说:迁移:生成

查看一下新生成的迁移类,您将看到如下内容:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
宣布(严格的类型)=1);名称空间DoctrineMigrations教义DBAL架构架构教义迁移抽象迁移/ ** *自动生成的迁移:请修改您的需求!* /最后Version20180605025653延伸抽象迁移平民的功能getDescription.()细绳返回'';}平民的功能向上(模式模式空白//介绍()迁移是自动生成的,请修改您的需求平民的功能下来(模式模式空白//这个down()迁移是自动生成的,请根据您的需要修改它}}

如果你运行状态再次命令它现在将显示您有一个新的迁移来执行:

1
PHP bin/console原则:迁移:状态——显示版本

现在可以添加一些迁移代码到()下()方法,最后迁移到您的准备好时:

1
php bin /控制台学说:迁移:迁移“DoctrineMigrations \ Version20180605025653”

有关如何编写迁移本身的更多信息(即如何填写()下()方法),见官方学说迁移欧宝官网下载app