Портирование в Laravel: миграция с сырых дампов SQL - PullRequest
0 голосов
/ 17 октября 2019

В моем проекте я перехожу из 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-код, сгенерированный из inсгенерированный дамп?

1 Ответ

1 голос
/ 17 октября 2019

Есть несколько пакетов генератора, которые вы можете прочитать через базу данных и сгенерировать нужные вам миграции. Мы делали это в прошлом при конвертации в laravel из другой среды. Это было не из файла дампа, а скорее из необработанной базы данных, но я надеюсь, что в любом случае это поможет!

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

...