如何指定数据库进行逆向工程?

时间:2013-03-15 15:37:57

标签: symfony doctrine-orm

我跟随this guide对数据库进行逆向工程。该指南说它使用paramters.yml文件作为数据库参数,但我怎样才能覆盖它?我在config.yml中列出了几个连接,我希望能够选择其中一个连接。

2 个答案:

答案 0 :(得分:5)

使用--em参数指定要使用的实体管理器。

doctrine:mapping:convert [--filter="..."] [--force] [--from-database] [--extend[="..."]] [--num-spaces[="..."]] [--namespace[="..."]] [--em[="..."]] to-type dest-path

答案 1 :(得分:2)

如果将每个Doctrine连接分配给其自己的Entity Manager,则可以使用--em="entity_manager_name"标志指定实体管理器。但是,您必须手动将每个包映射到实体管理器。在以下示例配置中,另一个连接和实体管理器名为 customer

$ php app/console doctrine:mapping:convert yml ./src/Acme/CustomerBundle/Resources/config/doctrine/metadata/orm --em="customer" --from-database --force

config.yml

# Doctrine Configuration
doctrine:
    dbal:
        default_connection:   default
        connections:
            default:
                driver:   %database_driver%
                host:     %database_host%
                port:     %database_port%
                dbname:   %database_name%
                user:     %database_user%
                password: %database_password%
                charset:  UTF8
           customer:
                driver:   %database_driver2%
                host:     %database_host2%
                port:     %database_port2%
                dbname:   %database_name2%
                user:     %database_user2%
                password: %database_password2%
                charset:  UTF8

    orm:
        default_entity_manager:   default
        entity_managers:
            default:
                connection:       default
                mappings:
                    AcmeDemoBundle: ~
                    AcmeStoreBundle: ~
            customer:
                connection:       customer
                mappings:
                    AcmeCustomerBundle: ~