从 Yii 或 Laravel 中的现有数据库生成迁移

2022-08-31 00:32:43

我正在处理一个具有相当复杂的数据库(150多个表)的项目。为了能够维护更改,我决定添加迁移,最好使用 Yii 或 Laravel。

有谁知道,是否有可能从现有数据库生成初始迁移?

手动创建它将:

  • 永远服用
  • 非常容易出错。

如果没有方法,有没有人知道一个好的基于PHP的框架,支持这样的功能?


答案 1

在 Yii 中完成此操作的说明:

  1. 将数据库连接设置添加到 。protected/config/console.php

  2. 运行以创建迁移的存根代码。yiic migrate create initial

  3. 将此要点的内容复制到 。protected/commands/InitialDbMigrationCommand.php

  4. 运行以生成和初始数据库迁移的方法。yiic initialdbmigration 'name_of_your_database' > initial_migration.phpup()down()

  5. 将和方法从 复制并粘贴到步骤 2 中在文件夹中创建的文件。up()down()initial_migration.phpprotected/migrations


答案 2

'Doctrine Project'(又名 Doctrine)能够为现有数据库结构创建数据库迁移,因此您可以重新创建现有结构。它可以很容易地在Symfony,Laravel,Yii和许多框架中实现。

样品来自:
http://symfony.com/legacy/doc/doctrine/1_2/en/07-Migrations

从数据库

如果有现有数据库,则可以生成一组迁移类,这些迁移类将通过运行以下命令重新创建数据库。

$ ./symfony doctrine:generate-migrations-db

从模型

如果您有一组现有的模型,则可以生成一组迁移类,这些迁移类将通过运行以下命令来创建数据库。

$ ./symfony doctrine:generate-migrations-models

推荐