如何在Symfony 6和Doctrine中使用现有的数据库

3
我想在新的Symfony 6项目和Doctrine中使用现有的MariaDB,但不知道如何从现有的数据库创建实体和存储库。该数据库非常复杂,具有许多关系。是否有导入工具可用?
以下命令似乎已过时。它可以工作,但只创建实体(但可能不完全正确)。 symfony console doctrine:mapping:import "App\Entity" annotation --path=src/Entity 谢谢您的帮助。

你尝试使用过 Maker Bundle 吗?它可以在 https://symfony.com/doc/current/doctrine/reverse_engineering.html 找到。 - Mohameth
这就是我尝试的方法,但关系和工厂并没有生成。 - Hannes
1
@Hannes 一般来说,Doctrine ORM旨在通过使用实体优先方法在应用程序中开发。由于ORM所施加的限制,依赖于从数据库映射出实体时会有很多问题。例如DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP和其他表达式。虽然这可能是可能的,但如果您不熟悉ORM,您将遇到问题。 - Will B.
1个回答

1
您可以使用以下命令:

您可以使用此类命令:

symfony console doctrine:mapping:import "App\Entity" annotation --path=src/Entity

但请注意,此解决方案已被弃用。

Symfony团队建议您使用maker bundle自己创建实体。

请记住,maker仅生成PHP类,因此您应该能够以此方式重现您的实体。 这可能需要一些时间,但实际上这是最好的方法。

只需小心命名您的关系(特别是对于多对多的中间表),它们可能不像maker bundle生成的那样通用。


我已经尝试过了。但这也意味着我不能使用它创建关系或工厂。我必须手动完成...这是正确的吗?还是有自动化的方法? - Hannes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接