如何将数据从外部mysql数据库导入Symfony2项目?

时间:2012-06-05 20:16:06

标签: mysql symfony import doctrine-orm

我正在使用Symfony2开发我的网站的新版本。 我在之前的版本上使用了mysql,现在我使用的是Doctrine2 / Mysql。 我想将我的用户表导入新版本。我认为最好的方法是使用Symfony2提供的命令工具。

但是,我不知道如何浏览我的旧mysql数据库(或mysql转储)以执行php脚本来填充我的新数据库。

有什么想法吗?

3 个答案:

答案 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