【问题标题】:Porting into Laravel: Migration from raw SQL Dumps移植到 Laravel:从原始 SQL 转储迁移
【发布时间】:2020-02-14 03:53:50
【问题描述】:

在我的项目中,我正在从 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 代码?

【问题讨论】:

    标签: php laravel postgresql database-migration laravel-5.6


    【解决方案1】:

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

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

    【讨论】:

    • 这个解决方案是否能够处理诸如外国数据库包装器和外国表之类的东西?
    • 我不确定我是否诚实,我从来没有尝试过!如果您发现它确实可以或类似的软件包可以完成这项工作,我很想知道
    • 即使查找外部表,它也没有正确生成它们,它为 postgresql 生成它们作为正常的。
    猜你喜欢
    • 2015-02-09
    • 2016-11-27
    • 2013-07-14
    • 1970-01-01
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-17
    • 2012-07-27
    相关资源
    最近更新 更多