Php 从数据库生成实体
我正在尝试从现有的空数据库(相当大,从头开始创建实体会非常痛苦)中生成symfony2中的实体。不幸的是,我遇到了相当大的问题 当我尝试调用以下命令时(在windows上,如果它更改了任何内容): 我得到以下信息: 没有要处理的元数据类 在发布之前,我已经:Php 从数据库生成实体,php,mysql,symfony,doctrine,Php,Mysql,Symfony,Doctrine,我正在尝试从现有的空数据库(相当大,从头开始创建实体会非常痛苦)中生成symfony2中的实体。不幸的是,我遇到了相当大的问题 当我尝试调用以下命令时(在windows上,如果它更改了任何内容): 我得到以下信息: 没有要处理的元数据类 在发布之前,我已经: 验证我的配置是否正常(我可以连接到数据库) 我的捆绑包已创建,上面指定的路径有效 当我尝试转换为xml/yml时,会发生与生成注释映射时相同的事情 Symfony版本是2.4.4,php版本是5.5.3 提前感谢您的帮助:) 回复后编辑
- 验证我的配置是否正常(我可以连接到数据库)
- 我的捆绑包已创建,上面指定的路径有效
- 当我尝试转换为xml/yml时,会发生与生成注释映射时相同的事情
php app/console doctrine:mapping:import --force GOBundle xml
根据@xiidea的建议,我得到了以下信息:
数据库没有任何映射信息
您的案例在symfony名为 如文件所述: 从现有对象构建实体类的第一步 数据库是要求条令对数据库进行反思并生成的 相应的元数据文件。元数据文件描述实体 基于表字段生成的类 使用以下命令(假设捆绑包的短名称为GOutsideGOBundle) $php应用程序/控制台原则:映射:导入——强制GOutsideGOBundle xml 那你需要打电话 php应用程序/控制台原则:生成:实体GOutsideGOBundle 如果需要生成带有注释映射的实体类,则必须在
原则之前执行以下命令:generate:entities
php应用程序/控制台原则:映射:转换注释。/src
路径应仅为/src而不是/src/GOutside/GOBundle/Resources/config/doctrine
更新:
如果配置中的所有内容都正确,则获取错误数据库没有任何映射信息。
不太可能!!我不确定这个错误。但根据您的数据库表模式,存在一些问题将阻止您创建映射信息
doctrine:
dbal:
//Other connection parameters
mapping_types:
point: string
对于第二个问题,您需要为这些表定义主键,它们可以是新字段,也可以是复合主键。我遇到了这个错误
Database does not have any mapping information.
在我的例子中,这是因为我有两个表的名称如下:
sudo php app/console doctrine:mapping:import --filter="MockstoreProduct" --force MockizartStoreBundle yml
错误数据库没有任何映射信息。
出现。但当我使用它生成--filter=“MockstoreCategory”
时,它没有
因此,要为mockstore\u product
表生成映射,它应该是:
php app/console doctrine:mapping:import --filter="Product" --force MockizartStoreBundle yml
--filter=“Product”
不是--filter=“MockstoreProduct”
希望有帮助。也有同样的问题,结果是缓存:
console c:c
解决了问题。在我的案例中,问题在于对数据库表的访问权限。 用户凭据正确,但此用户没有读取表的权限。 您可以执行类似这样的操作来检查
php bin/console原则:query:sql“SELECT*fromYourTable”似乎我错过了导入步骤,但遗憾的是,这样做不行,获取
数据库没有任何映射信息。
如果我尝试执行原则:映射:导入,则显示消息。@Długi:据我记忆所及数据库没有任何映射信息。
在没有表时显示。你能检查一下你的数据库配置吗?这些配置是否正确?特别是数据库名称
。如果您的信息是正确的,您可以共享一个或两个表模式吗?这是基本的mysql配置,所以不用动脑筋(无密码、localhost等),但这里是表导出-希望这能有所帮助@杜吉:如果你说的都是事实,我不知道你为什么会犯这样的错误!!。但是根据您的表模式,它不应该工作,原因有几个:1。您的表包含条令无法处理的特殊类型点
。2.您的数据库表有多个没有任何primarykey的表<代码>原则不支持对没有主键的表进行反向工程这个答案给了我一个有用的提示,谢谢。我尝试了--filter=“calendar”
,但它只适用于大写名称,如--filter=“calendar”
。当提到案例问题时,我对这个答案投了一票。谢谢
console c:c