pelican-panel-mirror/database/migrations/2017_09_23_173628_RemoveDaemonSecretFromServersTable.php
Lance Pioch 8261184b57
Officially support PostgreSQL database (#1066)
* Just skip this table because it no longer exists

* Add postgresql

* This no longer needs to be there

* These are the same output in mysql, but different in postgresql

* Fix these migrations for postgresql

* This table no longer exists

* This is expected to be a json column for json operations, required for postgresql

* Shoot for the stars

* Fix pint

* Why was this missing

* Updates

* Restore this

* This needs to be explicit

* Don’t like strings

* Fix these classes

* Use different method to compare dates

* Apparently postgresql doesn’t like case insensitivity

* Postgresql orders it backwards

* Ordered different by postgresql

* Unnecessary and breaking

* Make sure the order is correct for postresql

* Fix this with the order too

* Remove this

* Force email to be lowercased

* Update app/Models/User.php
2025-03-30 14:44:03 -04:00

53 lines
1.6 KiB
PHP

<?php
use Carbon\Carbon;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
use App\Contracts\Repository\DaemonKeyRepositoryInterface;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
$inserts = [];
$servers = DB::table('servers')->select('id', 'owner_id')->get();
$servers->each(function ($server) use (&$inserts) {
$inserts[] = [
'user_id' => $server->owner_id,
'server_id' => $server->id,
'secret' => DaemonKeyRepositoryInterface::INTERNAL_KEY_IDENTIFIER . str_random(40),
'expires_at' => Carbon::now()->addMinutes(config('panel.api.key_expire_time', 720))->toDateTimeString(),
'created_at' => Carbon::now()->toDateTimeString(),
'updated_at' => Carbon::now()->toDateTimeString(),
];
});
DB::transaction(function () use ($inserts) {
DB::table('daemon_keys')->insert($inserts);
});
Schema::table('servers', function (Blueprint $table) {
$table->dropUnique(['daemonSecret']);
$table->dropColumn('daemonSecret');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('servers', function (Blueprint $table) {
$table->string('daemonSecret', 36)->after('startup')->unique();
});
DB::table('daemon_keys')->truncate();
}
};