2013-08-05 42 views
3

这里是传统的文档解释什么 “产生的迁移-DB” 的作用:在Symfony 2/Doctrine 2中是否有“generate-migrations-db”的等价物?

http://symfony.com/legacy/doc/doctrine/1_2/en/07-Migrations

它说

从现有的数据库连接 (学说,产生-migrations-生成迁移类db,doctrine-gen-migrations-from-db)

另外:

生成迁移

学说提供了生成组 迁移类的现有数据库或现有车型以及 产生空白迁移类为你的代码填到 使能力的架构更改。

从数据库

如果你有,你可以建立一套迁移 类通过运行以下命令 将重新创建数据库的现有数据库。

$ ./symfony doctrine:generate-migrations-db

换句话说:它需要从数据库中的模式,并生成执行该模式创建一个迁移。在这个过程中没有使用实体,没有类,也没有映射。它只需要一个数据库并构建一个迁移类。

我们没有generate-migrations-db了。我们有执行这项任务的东西吗?我找不到。如果它被其他命令取代,请告诉我。如果它刚被删除,请告知。

回答

1

看看DoctrineMigrationsBundle,它可以生成用于迁移的sql语句的迁移类。

+0

我已经阅读了整个文档页面。现在哪个命令执行“generate-migrations-db”? (即根据当前数据库模式创建迁移,而不是实体/类) –

+0

'php app/console doctrine:migrations:diff'生成一个迁移类,其中包含当前数据库模式和实体映射之间的差异。 –

+0

是的,没错。但这不是我想要的。我想要“生成迁移数据库”功能。阅读:http://symfony.com/legacy/doc/doctrine/1_2/en/07-Migrations#chapter_07_generating_migrations“如果您有现有数据库,则可以构建一组迁移类,以便通过运行下面的命令“。正如我所说的,它不依赖于实体的映射。 –

6

我不知道在Doctrine或Migrations Bundle中为现有数据库创建迁移文件的命令。

因此,这里是我是如何做的,而不是:

  1. 安装DoctrineMigrationsBundle
  2. 创建一个新的空白数据库
  3. 更新你的配置或参数指向这个空白数据库,而不是你的“真实”的一个
  4. 运行php app/console doctrine:migrations:diff。这将创建一个从头开始创建数据库表等
  5. 变回你的配置一个迁移文件/参数

希望这是有帮助的。

+0

有趣。我现在无法测试,但我会稍后再检查。 –

+0

这也是。它有点粗糙,但它完成了工作,比我能找到的任何其他方法都简单。 – echochamber

+0

很高兴帮助。谢谢 – Sam

相关问题