当前位置: 首页 > 面试题库 >

从数据库生成实体

昝欣可
2023-03-14
问题内容

我正在尝试从现有的空数据库中生成symfony2中的实体(相当大,从头开始创建实体确实很痛苦)。不幸的是,我遇到了很大的问题。

当我尝试调用以下命令时(在Windows上如果发生任何更改):

php app/console doctrine:mapping:convert --force --from-database annotation ./src/GOutside/GOBundle/Resources/config/doctrine

我收到以下消息:

没有要处理的元数据类。

发布之前,我已经:

  • 验证我的配置正常(我可以连接到数据库),
  • 我的捆绑软件已创建,上面指定的路径有效
  • 当我尝试转换为xml / yml时,与尝试生成注释映射时,会发生相同的事情。

Symfony版本是2.4.4,php版本是5.5.3。

预先感谢您的帮助:)

xiidea回复后编辑

当我尝试使用

php app/console doctrine:mapping:import --force GOBundle xml

根据@xiidea的建议,我收到以下消息:

数据库没有任何映射信息。


问题答案:

您的案例在symfony网站上有很好的记录,该网站的标题为
“如何从现有数据库生成实体”

如文档所述:

从现有数据库构建实体类的第一步是要求Doctrine对数据库进行内部检查并生成相应的元数据文件。元数据文件描述了要基于表字段生成的实体类。

使用以下命令(假设捆绑包的简称为 GOutsideGOBundle

$ PHP应用程序/控制台学说:映射:导入–force GOutsideGOBundle xml

然后,您需要致电。

PHP应用程序/控制台学说:生成:实体GOutsideGOBundle

如果需要使用注释映射生成实体类,则必须先执行以下命令 doctrine:generate:entities

PHP应用程序/控制台学说:映射:转换注释./ src

路径应仅为 ./src 而不是 ./src/GOutside/GOBundle/Resources/config/doctrine

更新:

如果您的配置中的所有内容都正确,那么Database does not have any mapping information.就不可能出现错误!我不确定这个错误。但是根据您的数据库表架构,存在一些问题,这些问题将阻止您创建映射信息。

  1. 您的表包含该学说无法处理的特殊类型的
  2. 您的数据库表具有多个没有任何主键的表。 Doctrine不支持从没有主键的表进行逆向工程

要解决问题(1),您可以在主义配置部分中添加自定义映射。例如,将点类型映射为字符串,您可以编写:

doctrine:
    dbal:
        //Other connection parameters
        mapping_types:
            point: string

对于第二个问题,您需要为这些表定义主键,这些键可以是新字段,也可以是复合主键。



 类似资料:
  • 我有生成Hibernate实体的mysql db,现在我需要从这些实体生成内存数据库进行测试。我在试图运行我的单元测试时遇到了这个错误。 /***主]o.h.发动机。jdbc。spi。SqlExceptionHelper:SQL错误:42102,SQLState:42S02 2016-02-16 18:10:47.864错误29758---[main]o.h.engine。jdbc。spi。Sql

  • 使用liquibase可以从现有数据库生成changelog吗? 我希望每个表生成一个xml changelog(不是每个create table语句都在一个changelog中)。

  • 问题内容: 我想从数据库生成JPA (但我希望它是面向对象的)。例如 如果它还支持ManyToOne,OneToMany,Parent和ManyToMany,那将很酷。 PS我尝试了JBoss工具(hibernate工具),但没有为我工作。 问题答案: 使用JBoss工具(以前是hibernate工具)。 从他们的网站报价: 逆向工程:Hibernate Tools最强大的功能是数据库逆向工程工具

  • 问题内容: 如何使用SQL(选择/存储过程/等)从SQL Server数据库生成所有表的DDL(带有外键,索引等)脚本?我需要除数据外的所有内容。 我 无法 使用Sql Server Management Studio,因为我想在将在Linux上运行的node.js脚本中使用它! 问题答案: 对于表:(您可以按以下方式工作) 程序如下:

  • 我正在寻找一种从数据库值生成类的方法,以便使用可用的最新值提供更新的生成器类。用例如下: 有一张像这样的桌子 我希望生成一个可以像这样使用的生成器类 目标是能够在将值添加到数据库表时(使用Liquibase)生成更新的生成器类。有人知道有哪些库可以帮助实现这一点,或者有什么从头开始实现这一点的策略吗?我们的项目大多是Java 11,带有Groovy和Spring Boot。

  • 问题内容: Xcode 8更新: 在Xcode 8中,需要转到Core Data Model Editor并显示File Inspector。底部附近是代码生成的选项。选择快速。 编辑 :我找到了从核心数据实体生成Swift模型的解决方案: 在Xcode上: 编辑器 >创建NSManagedOjbect>单击按钮“下一步”>单击按钮“下一步”>选择“快速”语言>单击按钮“创建” 我使用Core D