Symfony的新功能...尝试从现有数据库创建实体 . 我试图按照http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html的说明进行操作
长话短说似乎我只需要3个命令:
$ php bin/console doctrine:mapping:import --force AppBundle xml $ php bin/console doctrine:mapping:convert annotation ./src $ php bin/console doctrine:generate:entities AppBundle
注意:我将AcmeBlogBundle的捆绑包名称修改为AppBundle,因为我只使用默认捆绑包 . 我也在使用Symfony 3,我在网上查找的所有内容似乎都引用了symfony2
无论如何,第一个命令似乎运行正常 . 我在./src/AppBundle/Resources/config/doctrine/路径中生成了orm.xml文件 . 命令2和3似乎是我的麻烦开始的地方 .
命令2导致
No Metadata Classes to process
命令3导致(显然命令2没有正常工作,但无论如何都尝试过)
[RuntimeException] Bundle "AppBundle" does not contain any mapped entities.
我在这里不知所措 .
config.yml的内容是:imports:
- {resource:parameters.yml}
- {resource:security.yml}
- {resource:services.yml}
将参数放在此处,无需在部署应用程序的每台计算机上进行更改
http://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
参数:locale:en
框架:#esi:〜
#translator:{fallbacks:["%locale%"]}
秘密:"%secret%"
路由器:
资源:"%kernel.root_dir%/config/routing.yml"
strict_requirements:〜
形式:〜
csrf_protection:〜
验证:{enable_annotations:true}
#serializer:{enable_annotations:true}
模板:
发动机:['twig']
#assets_version:SomeVersionScheme
default_locale:"%locale%"
trusted_hosts:〜
trusted_proxies:〜
Session :
#handler_id设置为null将使用php.ini中的默认会话处理程序
handler_id:〜
save_path:"%kernel.root_dir%/../var/sessions/%kernel.environment%"
片段:〜
http_method_override:true
资产:〜
Twig配置
枝条:
debug:"%kernel.debug%"
strict_variables:"%kernel.debug%"
学说配置
教义:
DBAL:
driver:pdo_mysql
主持人:"%database_host%"
端口:"%database_port%"
dbname:"%database_name%"
用户:"%database_user%"
密码:"%database_password%"
charset:UTF8
#如果使用pdo_sqlite作为数据库驱动程序:
#1.在parameters.yml中添加路径
#例如database_path:"%kernel.root_dir%/data/data.db3"
#2 . 在parameters.yml.dist中取消注释database_path
#3 . 取消注释下一行:
#path:"%database_path%"
orm:
auto_generate_proxy_classes: "%kernel.debug%"
naming_strategy: doctrine.orm.naming_strategy.underscore
auto_mapping: true
Swiftmailer配置
swiftmailer:
运输:"%mailer_transport%"
主持人:"%mailer_host%"
用户名:"%mailer_user%"
密码:"%mailer_password%"
spool:{type:memory}
我最后通过添加我认为上面的一个命令中的“--from database”标志来完成这个过程 . 我想第二个命令 . 我很确定你的配置是不正确的xml文件,这就是为什么它无法找到它们 .
1 回答
配置parameters.yml后,您可以直接运行以下命令 .
php bin/console doctrine:mapping:import --force AppBundle annotation
然后您可以运行此命令来生成实体
php bin/console doctrine:generate:entities AppBundle
在运行任何这些命令之前尝试数据库连接也很重要 . 尝试使用获取值