我正在使用Symfony2开发我的网站的新版本。 我在之前的版本上使用了mysql,现在我使用的是Doctrine2 / Mysql。 我想将我的用户表导入新版本。我认为最好的方法是使用Symfony2提供的命令工具。
但是,我不知道如何浏览我的旧mysql数据库(或mysql转储)以执行php脚本来填充我的新数据库。
有什么想法吗?
答案 0 :(得分:0)
您不需要拥有新数据库,可以继续使用实际数据库。但如果你想复制它,你可以使用mysqladmin command tool 然后,您可以generate your entities from your database。
答案 1 :(得分:0)
听起来很棘手,导致ETL问题。那里有一些tools;许多企业虽然有一些双许可开源。如果您只执行一次,那么许多工具可能过于复杂。但是,如果你经常要做这种数据,那么一个好的ETL应用程序可以节省大量时间。我可以推荐Altova的MapForce作为更直接和直观的一个。它只是Windows.
答案 2 :(得分:0)
我做到了!
我不知道这是否是最佳解决方案,但它有效。
1)在新数据库中导入旧表
2)要求Doctrine内省数据库并生成相应的元数据文件。
php app/console doctrine:mapping:convert xml ./src/Acme/BlogBundle/Resources/config/doctrine/metadata/orm --from-database --force
3)通过执行以下命令
,请求Doctrine导入模式并构建相关的实体类php app/console doctrine:mapping:import AcmeBlogBundle annotation
现在,我可以在旧数据库上使用此EntityManager来执行我想要的所有脚本。
您可以在此处找到更多信息:http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html