Files
api_arrahn/tinker/generate_migrations.php

48 lines
1.3 KiB
PHP

<?php
/**
* Generate kitloong migrations with a collation workaround for MySQL 8.
*
* Usage:
* php tinker/generate_migrations.php mysql7 database/migrations_generated/master
* php tinker/generate_migrations.php mysql2 database/migrations_generated/cawangan
*/
use Illuminate\Support\Facades\DB;
use Symfony\Component\Console\Input\ArrayInput;
use Symfony\Component\Console\Output\ConsoleOutput;
require __DIR__ . '/../vendor/autoload.php';
$connection = $argv[1] ?? 'mysql7';
$path = $argv[2] ?? 'database/migrations_generated/master';
$app = require __DIR__ . '/../bootstrap/app.php';
config([
"database.connections.{$connection}.collation" => 'utf8_general_ci',
]);
DB::purge($connection);
DB::reconnect($connection);
DB::connection($connection)->statement('SET NAMES utf8 COLLATE utf8_general_ci');
if (!is_dir(base_path($path))) {
mkdir(base_path($path), 0777, true);
}
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
$input = new ArrayInput([
'command' => 'migrate:generate',
'--connection' => $connection,
'--path' => $path,
'--skip-log' => true,
'--skip-views' => true,
'--skip-proc' => true,
'--ignore' => 'migrations',
'--no-interaction' => true,
]);
exit($kernel->handle($input, new ConsoleOutput));