-ao- ramune blog

©2024 unio / GO2直営からふるラムネ
2020年09月06日

doctrine-migrations-bundle v2 のアップグレード

Symfony5.0から5.1へアップグレードを行ったときに発生したエラーの対応メモです。
doctrine-migrations-bundleがv2系からv3系なったことによるエラーです。

doctrine_migrationsの変更

v3系からdoctrine_migrationsの仕様が変わるため、下記のエラーが発生します。

                
Unrecognized options "dir_name, namespace" under "doctrine_migrations". Available options are "all_or_nothing", "check_database_platform", "connection", "custom_template", "em", "factories", "migrat
  ions", "migrations_paths", "organize_migrations", "services", "storage".
                
            

本家UPGRADE.md のBefore/Afterを参考に、設定ファイルを書き換えます。

doctrine_migrationsの書き換え例
                
                     doctrine_migrations:
                     -    dir_name: '%kernel.project_dir%/src/Migrations'
                     -    namespace: DoctrineMigrations

                     +    migrations_paths:
                     +        DoctrineMigrations: '%kernel.project_dir%/src/Migrations'
                
            

doctrine_migrationsのem設定

defaultという名前は使わずEntityManagerの定義を行っている場合、下記のエラーが発生します。

                
                    The service "doctrine.migrations.dependency_factory" has a dependency on a non-existent service "doctrine.dbal.default_connection".
                
            

下記のように、default_entity_manageremの設定を行います。

                
                    doctrine:
                        orm:
                            default_entity_manager: hoge_em
                            # ...
                
            
                
                    doctrine_migrations:
                        # ...
                        em: hoge_em