using System;
using Microsoft.EntityFrameworkCore.Migrations;
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
#nullable disable
namespace MoonlightServers.ApiServer.Database.Migrations
{
///
public partial class RecreatedMigrationsForPostgresql : Migration
{
///
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.CreateTable(
name: "Servers_Nodes",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
Name = table.Column(type: "text", nullable: false),
Fqdn = table.Column(type: "text", nullable: false),
Token = table.Column(type: "text", nullable: false),
HttpPort = table.Column(type: "integer", nullable: false),
FtpPort = table.Column(type: "integer", nullable: false),
UseSsl = table.Column(type: "boolean", nullable: false),
EnableTransparentMode = table.Column(type: "boolean", nullable: false),
EnableDynamicFirewall = table.Column(type: "boolean", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Servers_Nodes", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Servers_Stars",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
Name = table.Column(type: "text", nullable: false),
Version = table.Column(type: "text", nullable: false),
Author = table.Column(type: "text", nullable: false),
UpdateUrl = table.Column(type: "text", nullable: true),
DonateUrl = table.Column(type: "text", nullable: true),
StartupCommand = table.Column(type: "text", nullable: false),
StopCommand = table.Column(type: "text", nullable: false),
OnlineDetection = table.Column(type: "text", nullable: false),
InstallShell = table.Column(type: "text", nullable: false),
InstallDockerImage = table.Column(type: "text", nullable: false),
InstallScript = table.Column(type: "text", nullable: false),
RequiredAllocations = table.Column(type: "integer", nullable: false),
AllowDockerImageChange = table.Column(type: "boolean", nullable: false),
DefaultDockerImage = table.Column(type: "integer", nullable: false),
ParseConfiguration = table.Column(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Servers_Stars", x => x.Id);
});
migrationBuilder.CreateTable(
name: "Servers_Servers",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
StarId = table.Column(type: "integer", nullable: false),
NodeId = table.Column(type: "integer", nullable: false),
Name = table.Column(type: "text", nullable: false),
OwnerId = table.Column(type: "integer", nullable: false),
StartupOverride = table.Column(type: "text", nullable: true),
DockerImageIndex = table.Column(type: "integer", nullable: false),
Cpu = table.Column(type: "integer", nullable: false),
Memory = table.Column(type: "integer", nullable: false),
Disk = table.Column(type: "integer", nullable: false),
UseVirtualDisk = table.Column(type: "boolean", nullable: false),
Bandwidth = table.Column(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Servers_Servers", x => x.Id);
table.ForeignKey(
name: "FK_Servers_Servers_Servers_Nodes_NodeId",
column: x => x.NodeId,
principalTable: "Servers_Nodes",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Servers_Servers_Servers_Stars_StarId",
column: x => x.StarId,
principalTable: "Servers_Stars",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Servers_StarDockerImages",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
StarId = table.Column(type: "integer", nullable: false),
DisplayName = table.Column(type: "text", nullable: false),
Identifier = table.Column(type: "text", nullable: false),
AutoPulling = table.Column(type: "boolean", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Servers_StarDockerImages", x => x.Id);
table.ForeignKey(
name: "FK_Servers_StarDockerImages_Servers_Stars_StarId",
column: x => x.StarId,
principalTable: "Servers_Stars",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Servers_StarVariables",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
StarId = table.Column(type: "integer", nullable: false),
Name = table.Column(type: "text", nullable: false),
Description = table.Column(type: "text", nullable: false),
Key = table.Column(type: "text", nullable: false),
DefaultValue = table.Column(type: "text", nullable: false),
AllowViewing = table.Column(type: "boolean", nullable: false),
AllowEditing = table.Column(type: "boolean", nullable: false),
Type = table.Column(type: "integer", nullable: false),
Filter = table.Column(type: "text", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Servers_StarVariables", x => x.Id);
table.ForeignKey(
name: "FK_Servers_StarVariables_Servers_Stars_StarId",
column: x => x.StarId,
principalTable: "Servers_Stars",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateTable(
name: "Servers_Allocations",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
NodeId = table.Column(type: "integer", nullable: false),
ServerId = table.Column(type: "integer", nullable: true),
IpAddress = table.Column(type: "text", nullable: false),
Port = table.Column(type: "integer", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Servers_Allocations", x => x.Id);
table.ForeignKey(
name: "FK_Servers_Allocations_Servers_Nodes_NodeId",
column: x => x.NodeId,
principalTable: "Servers_Nodes",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
table.ForeignKey(
name: "FK_Servers_Allocations_Servers_Servers_ServerId",
column: x => x.ServerId,
principalTable: "Servers_Servers",
principalColumn: "Id");
});
migrationBuilder.CreateTable(
name: "Servers_ServerBackups",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
CreatedAt = table.Column(type: "timestamp with time zone", nullable: false),
CompletedAt = table.Column(type: "timestamp with time zone", nullable: false),
Size = table.Column(type: "bigint", nullable: false),
Successful = table.Column(type: "boolean", nullable: false),
Completed = table.Column(type: "boolean", nullable: false),
ServerId = table.Column(type: "integer", nullable: true)
},
constraints: table =>
{
table.PrimaryKey("PK_Servers_ServerBackups", x => x.Id);
table.ForeignKey(
name: "FK_Servers_ServerBackups_Servers_Servers_ServerId",
column: x => x.ServerId,
principalTable: "Servers_Servers",
principalColumn: "Id");
});
migrationBuilder.CreateTable(
name: "Servers_ServerVariables",
columns: table => new
{
Id = table.Column(type: "integer", nullable: false)
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
ServerId = table.Column(type: "integer", nullable: false),
Key = table.Column(type: "text", nullable: false),
Value = table.Column(type: "text", nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_Servers_ServerVariables", x => x.Id);
table.ForeignKey(
name: "FK_Servers_ServerVariables_Servers_Servers_ServerId",
column: x => x.ServerId,
principalTable: "Servers_Servers",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
});
migrationBuilder.CreateIndex(
name: "IX_Servers_Allocations_NodeId",
table: "Servers_Allocations",
column: "NodeId");
migrationBuilder.CreateIndex(
name: "IX_Servers_Allocations_ServerId",
table: "Servers_Allocations",
column: "ServerId");
migrationBuilder.CreateIndex(
name: "IX_Servers_ServerBackups_ServerId",
table: "Servers_ServerBackups",
column: "ServerId");
migrationBuilder.CreateIndex(
name: "IX_Servers_Servers_NodeId",
table: "Servers_Servers",
column: "NodeId");
migrationBuilder.CreateIndex(
name: "IX_Servers_Servers_StarId",
table: "Servers_Servers",
column: "StarId");
migrationBuilder.CreateIndex(
name: "IX_Servers_ServerVariables_ServerId",
table: "Servers_ServerVariables",
column: "ServerId");
migrationBuilder.CreateIndex(
name: "IX_Servers_StarDockerImages_StarId",
table: "Servers_StarDockerImages",
column: "StarId");
migrationBuilder.CreateIndex(
name: "IX_Servers_StarVariables_StarId",
table: "Servers_StarVariables",
column: "StarId");
}
///
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "Servers_Allocations");
migrationBuilder.DropTable(
name: "Servers_ServerBackups");
migrationBuilder.DropTable(
name: "Servers_ServerVariables");
migrationBuilder.DropTable(
name: "Servers_StarDockerImages");
migrationBuilder.DropTable(
name: "Servers_StarVariables");
migrationBuilder.DropTable(
name: "Servers_Servers");
migrationBuilder.DropTable(
name: "Servers_Nodes");
migrationBuilder.DropTable(
name: "Servers_Stars");
}
}
}