fix: idempotent migrations with hasTable guards, fix install retry
This commit is contained in:
@@ -15,6 +15,7 @@ return new class extends Migration
|
|||||||
{
|
{
|
||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
|
if (!Schema::hasTable('addon_network_metrics')) {
|
||||||
Schema::create('addon_network_metrics', function (Blueprint $table) {
|
Schema::create('addon_network_metrics', function (Blueprint $table) {
|
||||||
$table->bigIncrements('id');
|
$table->bigIncrements('id');
|
||||||
$table->unsignedInteger('server_id')->index();
|
$table->unsignedInteger('server_id')->index();
|
||||||
@@ -35,7 +36,9 @@ return new class extends Migration
|
|||||||
->references('id')->on('nodes')
|
->references('id')->on('nodes')
|
||||||
->onDelete('cascade');
|
->onDelete('cascade');
|
||||||
});
|
});
|
||||||
|
} // end hasTable check
|
||||||
|
|
||||||
|
if (!Schema::hasTable('addon_network_port_metrics')) {
|
||||||
Schema::create('addon_network_port_metrics', function (Blueprint $table) {
|
Schema::create('addon_network_port_metrics', function (Blueprint $table) {
|
||||||
$table->bigIncrements('id');
|
$table->bigIncrements('id');
|
||||||
$table->unsignedInteger('server_id')->index();
|
$table->unsignedInteger('server_id')->index();
|
||||||
@@ -53,7 +56,9 @@ return new class extends Migration
|
|||||||
->references('id')->on('servers')
|
->references('id')->on('servers')
|
||||||
->onDelete('cascade');
|
->onDelete('cascade');
|
||||||
});
|
});
|
||||||
|
} // end hasTable check
|
||||||
|
|
||||||
|
if (!Schema::hasTable('addon_network_flows')) {
|
||||||
Schema::create('addon_network_flows', function (Blueprint $table) {
|
Schema::create('addon_network_flows', function (Blueprint $table) {
|
||||||
$table->bigIncrements('id');
|
$table->bigIncrements('id');
|
||||||
$table->unsignedInteger('src_server_id')->nullable()->index();
|
$table->unsignedInteger('src_server_id')->nullable()->index();
|
||||||
@@ -75,6 +80,7 @@ return new class extends Migration
|
|||||||
->references('id')->on('servers')
|
->references('id')->on('servers')
|
||||||
->onDelete('set null');
|
->onDelete('set null');
|
||||||
});
|
});
|
||||||
|
} // end hasTable check
|
||||||
}
|
}
|
||||||
|
|
||||||
public function down(): void
|
public function down(): void
|
||||||
|
|||||||
@@ -15,11 +15,12 @@ return new class extends Migration
|
|||||||
{
|
{
|
||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
|
if (!Schema::hasTable('addon_roles')) {
|
||||||
Schema::create('addon_roles', function (Blueprint $table) {
|
Schema::create('addon_roles', function (Blueprint $table) {
|
||||||
$table->increments('id');
|
$table->increments('id');
|
||||||
$table->string('name', 100);
|
$table->string('name', 100);
|
||||||
$table->text('description')->nullable();
|
$table->text('description')->nullable();
|
||||||
$table->string('color', 7)->default('#6366f1'); // indigo
|
$table->string('color', 7)->default('#6366f1');
|
||||||
$table->unsignedInteger('priority')->default(0);
|
$table->unsignedInteger('priority')->default(0);
|
||||||
$table->boolean('is_default')->default(false);
|
$table->boolean('is_default')->default(false);
|
||||||
$table->unsignedInteger('created_by')->nullable();
|
$table->unsignedInteger('created_by')->nullable();
|
||||||
@@ -29,7 +30,9 @@ return new class extends Migration
|
|||||||
->references('id')->on('users')
|
->references('id')->on('users')
|
||||||
->onDelete('set null');
|
->onDelete('set null');
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Schema::hasTable('addon_role_permissions')) {
|
||||||
Schema::create('addon_role_permissions', function (Blueprint $table) {
|
Schema::create('addon_role_permissions', function (Blueprint $table) {
|
||||||
$table->bigIncrements('id');
|
$table->bigIncrements('id');
|
||||||
$table->unsignedInteger('role_id');
|
$table->unsignedInteger('role_id');
|
||||||
@@ -44,7 +47,9 @@ return new class extends Migration
|
|||||||
->references('id')->on('addon_roles')
|
->references('id')->on('addon_roles')
|
||||||
->onDelete('cascade');
|
->onDelete('cascade');
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Schema::hasTable('addon_server_role_assignments')) {
|
||||||
Schema::create('addon_server_role_assignments', function (Blueprint $table) {
|
Schema::create('addon_server_role_assignments', function (Blueprint $table) {
|
||||||
$table->bigIncrements('id');
|
$table->bigIncrements('id');
|
||||||
$table->unsignedInteger('server_id');
|
$table->unsignedInteger('server_id');
|
||||||
@@ -69,7 +74,9 @@ return new class extends Migration
|
|||||||
->references('id')->on('users')
|
->references('id')->on('users')
|
||||||
->onDelete('set null');
|
->onDelete('set null');
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Schema::hasTable('addon_server_permission_overrides')) {
|
||||||
Schema::create('addon_server_permission_overrides', function (Blueprint $table) {
|
Schema::create('addon_server_permission_overrides', function (Blueprint $table) {
|
||||||
$table->bigIncrements('id');
|
$table->bigIncrements('id');
|
||||||
$table->unsignedInteger('server_id');
|
$table->unsignedInteger('server_id');
|
||||||
@@ -89,7 +96,9 @@ return new class extends Migration
|
|||||||
->references('id')->on('users')
|
->references('id')->on('users')
|
||||||
->onDelete('cascade');
|
->onDelete('cascade');
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!Schema::hasTable('addon_role_audit_log')) {
|
||||||
Schema::create('addon_role_audit_log', function (Blueprint $table) {
|
Schema::create('addon_role_audit_log', function (Blueprint $table) {
|
||||||
$table->bigIncrements('id');
|
$table->bigIncrements('id');
|
||||||
$table->unsignedInteger('actor_id')->nullable();
|
$table->unsignedInteger('actor_id')->nullable();
|
||||||
@@ -108,6 +117,7 @@ return new class extends Migration
|
|||||||
->onDelete('set null');
|
->onDelete('set null');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public function down(): void
|
public function down(): void
|
||||||
{
|
{
|
||||||
@@ -118,3 +128,4 @@ return new class extends Migration
|
|||||||
Schema::dropIfExists('addon_roles');
|
Schema::dropIfExists('addon_roles');
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ return new class extends Migration
|
|||||||
{
|
{
|
||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
|
if (!Schema::hasTable('addon_file_revisions')) {
|
||||||
Schema::create('addon_file_revisions', function (Blueprint $table) {
|
Schema::create('addon_file_revisions', function (Blueprint $table) {
|
||||||
$table->bigIncrements('id');
|
$table->bigIncrements('id');
|
||||||
$table->unsignedInteger('server_id');
|
$table->unsignedInteger('server_id');
|
||||||
@@ -41,7 +42,9 @@ return new class extends Migration
|
|||||||
->references('id')->on('users')
|
->references('id')->on('users')
|
||||||
->onDelete('set null');
|
->onDelete('set null');
|
||||||
});
|
});
|
||||||
|
} // end hasTable addon_file_revisions
|
||||||
|
|
||||||
|
if (!Schema::hasTable('addon_file_revision_storage_usage')) {
|
||||||
Schema::create('addon_file_revision_storage_usage', function (Blueprint $table) {
|
Schema::create('addon_file_revision_storage_usage', function (Blueprint $table) {
|
||||||
$table->unsignedInteger('server_id')->primary();
|
$table->unsignedInteger('server_id')->primary();
|
||||||
$table->unsignedBigInteger('total_bytes')->default(0);
|
$table->unsignedBigInteger('total_bytes')->default(0);
|
||||||
@@ -51,6 +54,7 @@ return new class extends Migration
|
|||||||
->references('id')->on('servers')
|
->references('id')->on('servers')
|
||||||
->onDelete('cascade');
|
->onDelete('cascade');
|
||||||
});
|
});
|
||||||
|
} // end hasTable addon_file_revision_storage_usage
|
||||||
}
|
}
|
||||||
|
|
||||||
public function down(): void
|
public function down(): void
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ return new class extends Migration
|
|||||||
{
|
{
|
||||||
public function up(): void
|
public function up(): void
|
||||||
{
|
{
|
||||||
|
if (!Schema::hasTable('addon_command_definitions')) {
|
||||||
Schema::create('addon_command_definitions', function (Blueprint $table) {
|
Schema::create('addon_command_definitions', function (Blueprint $table) {
|
||||||
$table->increments('id');
|
$table->increments('id');
|
||||||
$table->unsignedInteger('server_id')->nullable()->index();
|
$table->unsignedInteger('server_id')->nullable()->index();
|
||||||
@@ -33,7 +34,9 @@ return new class extends Migration
|
|||||||
->references('id')->on('nodes')
|
->references('id')->on('nodes')
|
||||||
->onDelete('cascade');
|
->onDelete('cascade');
|
||||||
});
|
});
|
||||||
|
} // end hasTable addon_command_definitions
|
||||||
|
|
||||||
|
if (!Schema::hasTable('addon_console_player_cache')) {
|
||||||
Schema::create('addon_console_player_cache', function (Blueprint $table) {
|
Schema::create('addon_console_player_cache', function (Blueprint $table) {
|
||||||
$table->unsignedInteger('server_id');
|
$table->unsignedInteger('server_id');
|
||||||
$table->string('player_name', 64);
|
$table->string('player_name', 64);
|
||||||
@@ -46,6 +49,7 @@ return new class extends Migration
|
|||||||
->references('id')->on('servers')
|
->references('id')->on('servers')
|
||||||
->onDelete('cascade');
|
->onDelete('cascade');
|
||||||
});
|
});
|
||||||
|
} // end hasTable addon_console_player_cache
|
||||||
}
|
}
|
||||||
|
|
||||||
public function down(): void
|
public function down(): void
|
||||||
|
|||||||
Reference in New Issue
Block a user