30 lines
1.6 KiB
PHP
30 lines
1.6 KiB
PHP
<?php
|
|
|
|
use App\Models\User;
|
|
use Illuminate\Contracts\Console\Kernel;
|
|
use Illuminate\Support\Facades\Artisan;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Support\Facades\Hash;
|
|
use Illuminate\Support\Facades\Schema;
|
|
|
|
foreach (['APP_ENV' => 'testing', 'DB_CONNECTION' => 'pgsql', 'DB_HOST' => '127.0.0.1', 'DB_PORT' => '55441',
|
|
'DB_DATABASE' => 'anchor_restore_20261007_test', 'DB_USERNAME' => 'postgres', 'DB_PASSWORD' => '', 'DB_URL' => '', 'MAIL_MAILER' => 'array', 'QUEUE_CONNECTION' => 'sync'] as $key => $value) {
|
|
putenv($key.'='.$value);
|
|
$_ENV[$key] = $_SERVER[$key] = $value;
|
|
}
|
|
require dirname(__DIR__).'/vendor/autoload.php';
|
|
$app = require dirname(__DIR__).'/bootstrap/app.php';
|
|
$app->make(Kernel::class)->bootstrap();
|
|
$identity = DB::selectOne('select current_database() as database, inet_server_port() as port');
|
|
if ($identity->database !== 'anchor_restore_20261007_test' || (int) $identity->port !== 55441) {
|
|
throw new RuntimeException('QA database identity rejected');
|
|
}
|
|
if (! Schema::hasTable('partnership_interests')) {
|
|
Artisan::call('migrate', ['--path' => 'database/migrations/2026_10_07_160000_extend_internal_partnership_exchange.php', '--force' => true]);
|
|
}
|
|
foreach (['owner', 'candidate', 'moderator'] as $role) {
|
|
$user = User::firstOrCreate(['email' => 'partnership-qa-'.$role.'@example.invalid'], ['name' => 'Synthetic QA partnership '.$role, 'password' => Hash::make('QA-Partnership-2026!')]);
|
|
$user->forceFill(['email_verified_at' => $role === 'moderator' ? now() : null])->save();
|
|
}
|
|
echo "Partnership migration and synthetic users prepared exclusively in isolated restored QA.\n";
|