【问题标题】:Is there a "generate-migrations-db" equivalent in Symfony 2 / Doctrine 2?Symfony 2 / Doctrine 2 中是否有“generate-migrations-db”等价物?
【发布时间】:2013-08-05 07:55:04
【问题描述】:

这里是解释“generate-migrations-db”做什么的遗留文档:

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

它说

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

还有:

生成迁移

Doctrine 提供了生成集合的能力 现有数据库或现有模型的迁移类以及 生成空白迁移类供您填写代码 进行架构更改。

来自数据库

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

$ ./symfony doctrine:generate-migrations-db

换句话说:它从数据库中获取模式并生成执行该模式创建的迁移。在此过程中不使用实体、类和映射。它只需要一个数据库并构建一个迁移类。

我们不再有generate-migrations-db。我们有执行该任务的东西吗?我找不到。如果它被其他命令替换,请告诉我。如果它刚刚被删除,请告知。

【问题讨论】:

    标签: php symfony doctrine-orm


    【解决方案1】:

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

    所以我是这样做的:

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

    希望这有帮助。

    【讨论】:

    • 有趣。我现在无法测试,但我稍后会检查。
    • 也这样做了。它有点粗糙,但它可以完成工作并且比我能找到的任何其他方法都简单。
    • 很高兴它有帮助。谢谢
    【解决方案2】:

    看一下DoctrineMigrationsBundle,它可以生成带有sql语句的迁移类进行迁移。

    【讨论】:

    • 我已经阅读了整个文档页面。哪个命令现在执行“generate-migrations-db”的操作? (即,基于当前数据库架构创建迁移,而不是实体/类)
    • php app/console doctrine:migrations:diff 生成迁移类,其中包含当前数据库架构和实体映射之间的差异。
    • 是的,没错。但这不是我想要的。我想要“生成迁移数据库”功能。阅读:symfony.com/legacy/doc/doctrine/1_2/en/…“如果你有一个现有的数据库,你可以构建一组迁移类,通过运行以下命令重新创建你的数据库。” - 正如我所说,它不依赖于实体的映射。
    猜你喜欢
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2016-04-19
    • 1970-01-01
    相关资源
    最近更新 更多