使用 Doctrine 对没有主键的 table 进行逆向工程
Reverse engineering a table with no primary key using Doctrine
我正在尝试使用 Doctrine 的逆向工程在我的数据库中导入现有的 table,但是我正在导入的这个 table 没有主键。
我知道 Doctrine 不允许在没有任何主键的情况下导入 tables,但我想知道是否有可能这样做。我一直在尝试编辑 Doctrine 的代码以允许它,但目前没有任何结果。
有人知道方法吗?或者,如果不可能,我有什么选择?我无法编辑数据库,因为它不是我的,所以我需要管理它以在不“接触”数据库的情况下导入 table。
所以在尝试了很多之后,我找到了一些可以解决这个问题的方法。我会把它们解释给所有和我有同样情况的人:
- 第一种方法:@mulquin说的那个。此方法通过导出 table 然后使用代码手动添加主键来解决问题。完成后,可以使用 Doctrine 导入它。
- 第二种方法:我发现的。直接使用代码创建 table 并手动连接它,而不是使用
make:entity
。您应该在 Entity 和 Repository 中创建这两个文件,然后编写代码使其与数据库中的 table 匹配,使用 @ORM\Table
、@ORM\Column
等并编写所有内容就像 Doctrine 会产生它。您可以使用 Doctrine 生成的现有实体来确保您没有遗漏任何东西。
我正在尝试使用 Doctrine 的逆向工程在我的数据库中导入现有的 table,但是我正在导入的这个 table 没有主键。
我知道 Doctrine 不允许在没有任何主键的情况下导入 tables,但我想知道是否有可能这样做。我一直在尝试编辑 Doctrine 的代码以允许它,但目前没有任何结果。
有人知道方法吗?或者,如果不可能,我有什么选择?我无法编辑数据库,因为它不是我的,所以我需要管理它以在不“接触”数据库的情况下导入 table。
所以在尝试了很多之后,我找到了一些可以解决这个问题的方法。我会把它们解释给所有和我有同样情况的人:
- 第一种方法:@mulquin说的那个。此方法通过导出 table 然后使用代码手动添加主键来解决问题。完成后,可以使用 Doctrine 导入它。
- 第二种方法:我发现的。直接使用代码创建 table 并手动连接它,而不是使用
make:entity
。您应该在 Entity 和 Repository 中创建这两个文件,然后编写代码使其与数据库中的 table 匹配,使用@ORM\Table
、@ORM\Column
等并编写所有内容就像 Doctrine 会产生它。您可以使用 Doctrine 生成的现有实体来确保您没有遗漏任何东西。