我正在尝试使用命令
doctrine:mapping:import但是,要将数据库导入到我的项目中,我不希望database.orm.yml文件位于包中,我希望orm和实体文件位于src文件夹中的静态目录中。上面的命令要求我提供一个包名。我的问题是,如何将映射文件导入到文件夹./src/Entity/orm 文件夹中,而不是将其导入到包中?是否可能?
./src/Entity/orm <-- Directory having the .yml files
./src/Entity/Repository <-- The repository classes
./src/Entity <-- The Entity Classes here发布于 2014-07-22 16:23:40
我将用我发现的工作来回答我自己的问题。
下面的命令将从数据库生成实体到指定的文件中,并将命名空间添加到类中;
php app/console doctrine:mapping:convert annotation ./src/Entity --from-database --force --namespace="Entity\\";要想得到完整的答案,我可以用:
php app/console doctrine:mapping:convert annotation ./src/Entity --from-database --force --namespace="Entity\\";以生成yaml orm文件。然后手动将命名空间添加到每个名称空间中,然后运行:
php app/console doctrine:generate:entities ./src/Entity/orm正确设置Symfony2 config.yml参数之后。然而,这将是一个浪费的努力,因为我可以同样容易地使用注释。
我从这次经历中学到的是,如果您使用的是代码优先开发策略,那么使用yaml文件和生成实体是一个很好的特性。如果您只是试图像我一样从一个设计糟糕或臃肿的数据库中生成一个实体框架,那么使用注释可以省去麻烦。
现在我要做的是,因为您不能从数据库中指定repositoryClasses。只是在我开发的时候添加存储库类。并不是每个200+表都需要一个存储库类。
注:这个数据库不是“内部”设计的,大家的共识是,它很糟糕,需要重新设计,但目前的时间限制不允许我们这样做……
https://stackoverflow.com/questions/24685052
复制相似问题