Symfony Doctrine 迁移 - 使用事务来包装迁移

问题描述 投票:0回答:1

我想要做的:对于使用

php bin/console doctrine:migrations:migrate
执行的每个迁移,将其包装在正确的事务中(开始事务/开始/回滚/...)。

我的 config/doctrine_migrations.yml 文件包含以下选项:

doctrine_migrations:
    migrations_paths:
        # namespace is arbitrary but should be different from App\Migrations
        # as migrations classes should NOT be autoloaded
        'DoctrineMigrations': '%kernel.project_dir%/migrations'
    enable_profiler: false
    # Run all migrations in a transaction.
    all_or_nothing: true
    # Adds an extra check in the generated migrations to ensure that is executed on the same database type.
    check_database_platform: true
    # Whether to wrap migrations in a single transaction.
    transactional: true

无论如何,AbstractMigration 中的 isTransactional 方法默认返回 true。

我在这里遗漏了什么吗?这里的“交易”是否还有我所期待的其他含义?

我正在

symfony 6.3.7
doctine-migrations-bundle 3.2.4
5.7.29 MySQL database

上跑步
mysql symfony transactions doctrine doctrine-migrations
1个回答
0
投票

transactional
配置值显然仅在生成新迁移时使用,因为可以在生成器中看到,当事务性设置为
false
时,
AbstractMigration::isTransactional
将被覆盖以返回
false
.

© www.soinside.com 2019 - 2024. All rights reserved.