48 lines
1.3 KiB
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));
|