首页 > 解决方案 > 移植到 Laravel:从原始 SQL 转储迁移

问题描述

在我的项目中,我正在从 Codeigniter 迁移到 Laravel,同时我也开始使用 phpunit 测试。在这个项目中,有许多没有任何迁移的遗留数据库。我想从他们那里自动生成一个用于集成测试的测试数据库。

但是我的想法有一个棘手的问题:如何自动生成现有的测试数据库并在需要时对其进行核对?现有项目中没有数据库迁移,因此我需要在新生成的项目中创建它们。

到目前为止,我使用pg-dump(我使用 postgresql 风格作为我的数据库)生成了我的数据库的转储。转储是一个 sql 文件。我还使用以下命令创建了初始迁移:

php ./artisan make:migration --path ./database/migrations/myDb InitialDb

这生成了以下代码:

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class InitialDb extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        //Read and execute the sql dump.
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        //Delete anything except the test data.
    }
}

所以我想知道如何执行从生成的转储中生成的 sql 代码?

标签: phplaravelpostgresqldatabase-migrationlaravel-5.6

解决方案


您可以获得一些生成器包,它们将读取数据库并生成您需要的迁移。我们过去在从另一个框架转换为 laravel 时已经这样做了。这不是来自转储文件,而是来自原始数据库本身,但我希望它无论如何都会有所帮助!

https://www.5balloons.info/create-migration-files-from-existing-database-in-laravel/


推荐阅读