<?xml version="1.0" encoding="UTF-8" ?>

<container xmlns="http://symfony.com/schema/dic/services"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://symfony.com/schema/dic/services http://symfony.com/schema/dic/services/services-1.0.xsd">

    <services>

        <service id="doctrine.migrations.dependency_factory" class="Doctrine\Migrations\DependencyFactory" public="false">
            <factory></factory>
            <argument type="service" id="doctrine.migrations.configuration_loader"/>
            <argument></argument>
            <argument type="service" id="logger" on-invalid="null"></argument>
        </service>

        <service id="doctrine.migrations.configuration_loader" class="Doctrine\Migrations\Configuration\Migration\ExistingConfiguration" public="false">
            <argument type="service" id="doctrine.migrations.configuration"/>
        </service>

        <service id="doctrine.migrations.connection_loader" class="Doctrine\Migrations\Configuration\Connection\ExistingConnection" public="false">

        </service>

        <service id="doctrine.migrations.em_loader" class="Doctrine\Migrations\Configuration\EntityManager\ExistingEntityManager" public="false">

        </service>

        <service id="doctrine.migrations.entity_manager_registry_loader" class="Doctrine\Migrations\Configuration\EntityManager\ManagerRegistryEntityManager" public="false">
            <factory class="Doctrine\Migrations\Configuration\EntityManager\ManagerRegistryEntityManager" method="withSimpleDefault"/>
            <argument type="service" id="doctrine"/>
        </service>

        <service id="doctrine.migrations.connection_registry_loader" class="Doctrine\Migrations\Configuration\Connection\ConnectionRegistryConnection" public="false">
            <factory class="Doctrine\Migrations\Configuration\Connection\ConnectionRegistryConnection" method="withSimpleDefault"/>
            <argument type="service" id="doctrine"/>
        </service>

        <service id="doctrine.migrations.configuration" class="Doctrine\Migrations\Configuration\Configuration" public="false">
        </service>

        <service id="doctrine.migrations.migrations_factory" class="Doctrine\Migrations\Version\MigrationFactory">
            <factory service="doctrine.migrations.dependency_factory" method="getMigrationFactory"/>
        </service>

        <service id="doctrine.migrations.container_aware_migrations_factory"
                 class="Doctrine\Bundle\MigrationsBundle\MigrationsFactory\ContainerAwareMigrationFactory"
                 decorates="doctrine.migrations.migrations_factory"
        >
            <argument id="doctrine.migrations.container_aware_migrations_factory.inner" type="service"/>
            <argument id="service_container" type="service"/>
        </service>

        <service id="doctrine_migrations.diff_command" class="Doctrine\Migrations\Tools\Console\Command\DiffCommand">

            <argument type="service" id="doctrine.migrations.dependency_factory"/>
            <argument>doctrine:migrations:diff</argument>

            <tag name="console.command" command="doctrine:migrations:diff" />
        </service>

        <service id="doctrine_migrations.sync_metadata_command" class="Doctrine\Migrations\Tools\Console\Command\SyncMetadataCommand">

            <argument type="service" id="doctrine.migrations.dependency_factory"/>
            <argument>doctrine:migrations:sync-metadata-storage</argument>

            <tag name="console.command" command="doctrine:migrations:sync-metadata-storage" />
        </service>

        <service id="doctrine_migrations.versions_command" class="Doctrine\Migrations\Tools\Console\Command\ListCommand">

            <argument type="service" id="doctrine.migrations.dependency_factory"/>
            <argument>doctrine:migrations:versions</argument>

            <tag name="console.command" command="doctrine:migrations:list" />
        </service>

        <service id="doctrine_migrations.current_command" class="Doctrine\Migrations\Tools\Console\Command\CurrentCommand">

            <argument type="service" id="doctrine.migrations.dependency_factory"/>
            <argument>doctrine:migrations:current</argument>

            <tag name="console.command"  command="doctrine:migrations:current"/>
        </service>

        <service id="doctrine_migrations.dump_schema_command" class="Doctrine\Migrations\Tools\Console\Command\DumpSchemaCommand">

            <argument type="service" id="doctrine.migrations.dependency_factory"/>
            <argument>doctrine:migrations:dump-schema</argument>

            <tag name="console.command"  command="doctrine:migrations:dump-schema"/>
        </service>
        <service id="doctrine_migrations.execute_command" class="Doctrine\Migrations\Tools\Console\Command\ExecuteCommand">

            <argument type="service" id="doctrine.migrations.dependency_factory"/>
            <argument>doctrine:migrations:execute</argument>

            <tag name="console.command"  command="doctrine:migrations:execute"/>
        </service>
        <service id="doctrine_migrations.generate_command" class="Doctrine\Migrations\Tools\Console\Command\GenerateCommand">

            <argument type="service" id="doctrine.migrations.dependency_factory"/>
            <argument>doctrine:migrations:generate</argument>

            <tag name="console.command"  command="doctrine:migrations:generate"/>
        </service>
        <service id="doctrine_migrations.latest_command" class="Doctrine\Migrations\Tools\Console\Command\LatestCommand">

            <argument type="service" id="doctrine.migrations.dependency_factory"/>
            <argument>doctrine:migrations:latest</argument>

            <tag name="console.command"  command="doctrine:migrations:latest"/>
        </service>
        <service id="doctrine_migrations.migrate_command" class="Doctrine\Migrations\Tools\Console\Command\MigrateCommand">

            <argument type="service" id="doctrine.migrations.dependency_factory"/>
            <argument>doctrine:migrations:migrate</argument>

            <tag name="console.command"  command="doctrine:migrations:migrate" />
        </service>
        <service id="doctrine_migrations.rollup_command" class="Doctrine\Migrations\Tools\Console\Command\RollupCommand">

            <argument type="service" id="doctrine.migrations.dependency_factory"/>
            <argument>doctrine:migrations:rollup</argument>

            <tag name="console.command" command="doctrine:migrations:rollup" />
        </service>
        <service id="doctrine_migrations.status_command" class="Doctrine\Migrations\Tools\Console\Command\StatusCommand">

            <argument type="service" id="doctrine.migrations.dependency_factory"/>
            <argument>doctrine:migrations:status</argument>

            <tag name="console.command" command="doctrine:migrations:status" />
        </service>
        <service id="doctrine_migrations.up_to_date_command" class="Doctrine\Migrations\Tools\Console\Command\UpToDateCommand">

            <argument type="service" id="doctrine.migrations.dependency_factory"/>
            <argument>doctrine:migrations:up-to-date</argument>

            <tag name="console.command" command="doctrine:migrations:up-to-date" />
        </service>
        <service id="doctrine_migrations.version_command" class="Doctrine\Migrations\Tools\Console\Command\VersionCommand">

            <argument type="service" id="doctrine.migrations.dependency_factory"/>
            <argument>doctrine:migrations:version</argument>

            <tag name="console.command" command="doctrine:migrations:version" />
        </service>

    </services>

</container>
