Symfony2 - 更改迁移目录

标签 symfony doctrine migration bundle

如何更改 config.yml 中的默认迁移目录?
现在我正在使用 2 个具有不同 db-connections 的包,我想创建迁移文件并将它们存储在不同的目录中,以使用该包依赖的 dotric:migrations:migrate --em=whatever 函数。

例如:

doctrine:migrate:diff --em=whatever #creating a version file in the DoctrineMigrationsWhatever directory

php app/console doctrine:migrations:status --em=whatever # shows only the version files, that belong to the bundle

最佳答案

如果您将为第二个连接/bundle 创建单独的实体管理器,您将在 DoctrineMigrations 目录中获得另一个目录。例如:

app/
    DoctrineMigrations/
        entityManager1/
        entityManager2/

如果你想把所有的迁移放到另一个目录,你可以在你的 config.yml 中设置它:
doctrine_migrations:
    dir_name: '%kernel.root_dir%/../Acme/CommonBundle/DoctrineMigrations'
    namespace: 'Acme\CommonBundle\DoctrineMigrations'

如果你想要一些更复杂的事情,比如把从 em1 到 dir1 的迁移放在 bundle1 里面,把从 em2 到 dir2 的迁移放在 bundle2 里面,你需要另外两个配置文件,你将在其中指定特定包的目录:

http://docs.doctrine-project.org/projects/doctrine-migrations/en/latest/reference/introduction.html#configuration

然后你像这样运行你的迁移:
doctrine:migrations:status --em=em1 --configuration=./path/to/bundle1/Resources/config/migrations.yml
doctrine:migrations:status --em=em2 --configuration=./path/to/bundle2/Resources/config/migrations.yml

来自 https://github.com/doctrine/DoctrineMigrationsBundle/pull/46
migrations.yml 文件应如下所示:
name: Doctrine Postgres Migrations  
migrations_namespace: Application\Migrations  
table_name: migration_versions  
migrations_directory: PostgreSqlMigrations  

关于Symfony2 - 更改迁移目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17066670/

相关文章:

php - 使用关系数据库构建受 GitHub 启发的时间线的设计模式?

sql - 是否可以在 Rails 迁移中使用外部 SQL 文件?

c# - 有人可以指点我从 C# 到 Java 的良好迁移指南吗?

symfony - 如何在 Symfony 中使用不同的控制台配置

php - Symfony2 降级包以使用 php 5.6.20

symfony - 具有多个连接表的 Doctrine DQL

php - 有没有办法在 doctrine2 中使用 mysql 二元运算符?

php - DQL 的嵌套条件

mysql - 将数据从 SonarQube v4.5.6 迁移到 v7.1

php - 在linux服务器上安装dlib并尝试将symfony2与sql服务器连接