1

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

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

有任何想法吗 ?

4

3 回答 3

0

你不需要有一个新的数据库,你可以继续使用实际的。但是如果你想复制它,你可以使用mysqladmin命令工具
然后,您可以从数据库中生成实体

于 2012-06-05T20:35:40.180 回答
0

听起来很棘手,足以成为一个ETL问题。那里有许多工具;许多企业虽然有一些双许可开源。如果您只这样做一次,那么许多工具可能过于复杂。但是,如果您必须经常进行这种数据处理,那么一个好的 ETL 应用程序可以节省大量时间。我可以推荐 Altova 的MapForce作为更直接和直观的方法之一。它只是Windows。

于 2012-06-06T13:14:01.330 回答
0

我做到了 !

我不知道这是否是最好的解决方案,但它有效。

1)在我的新数据库中导入旧表

2)让Doctrine自省数据库并生成相应的元数据文件。

php app/console doctrine:mapping:convert xml ./src/Acme/BlogBundle/Resources/config/doctrine/metadata/orm --from-database --force

3) 执行以下命令,让Doctrine导入schema并构建相关实体类

php app/console doctrine:mapping:import AcmeBlogBundle annotation

现在,我可以在我的旧数据库上使用这个 EntityManager 来执行我想要的所有脚本。

你可以在这里找到更多信息:http: //symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html

于 2012-06-08T01:04:24.890 回答