446 lines
19 KiB
C#
446 lines
19 KiB
C#
using System;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
|
|
|
#nullable disable
|
|
|
|
namespace MyOffice.Migrations.Postgres.Migrations
|
|
{
|
|
/// <inheritdoc />
|
|
public partial class Init : Migration
|
|
{
|
|
/// <inheritdoc />
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.AlterDatabase()
|
|
.Annotation("Npgsql:CollationDefinition:my_ci_collation", "en-u-ks-primary,en-u-ks-primary,icu,False");
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "CurrencyGlobals",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<string>(type: "text", nullable: false),
|
|
Name = table.Column<string>(type: "text", nullable: false),
|
|
Symbol = table.Column<string>(type: "text", nullable: false),
|
|
DefaultQuantity = table.Column<int>(type: "integer", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_CurrencyGlobals", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "ItemGlobals",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Name = table.Column<string>(type: "text", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_ItemGlobals", x => x.Id);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Accounts",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
CurrencyGlobalId = table.Column<string>(type: "text", nullable: false),
|
|
Name = table.Column<string>(type: "text", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Accounts", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Accounts_CurrencyGlobals_CurrencyGlobalId",
|
|
column: x => x.CurrencyGlobalId,
|
|
principalTable: "CurrencyGlobals",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Users",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserName = table.Column<string>(type: "text", nullable: false, collation: "my_ci_collation"),
|
|
Email = table.Column<string>(type: "text", nullable: false, collation: "my_ci_collation"),
|
|
PasswordHash = table.Column<string>(type: "text", nullable: false),
|
|
FirstName = table.Column<string>(type: "text", nullable: true),
|
|
LastName = table.Column<string>(type: "text", nullable: true),
|
|
FullName = table.Column<string>(type: "text", nullable: true),
|
|
Phone = table.Column<string>(type: "text", nullable: true),
|
|
IsEmailConfirmed = table.Column<bool>(type: "boolean", nullable: false),
|
|
CurrencyId = table.Column<string>(type: "text", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Users", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Users_CurrencyGlobals_CurrencyId",
|
|
column: x => x.CurrencyId,
|
|
principalTable: "CurrencyGlobals",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "AccountAccesses",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
AccountId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
IsAllowRead = table.Column<bool>(type: "boolean", nullable: false),
|
|
IsAllowWrite = table.Column<bool>(type: "boolean", nullable: false),
|
|
IsAllowManage = table.Column<bool>(type: "boolean", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_AccountAccesses", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_AccountAccesses_Accounts_AccountId",
|
|
column: x => x.AccountId,
|
|
principalTable: "Accounts",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_AccountAccesses_Users_UserId",
|
|
column: x => x.UserId,
|
|
principalTable: "Users",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "AccountCategories",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Name = table.Column<string>(type: "text", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_AccountCategories", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_AccountCategories_Users_UserId",
|
|
column: x => x.UserId,
|
|
principalTable: "Users",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Currencies",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
CurrencyGlobalId = table.Column<string>(type: "text", nullable: false),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Name = table.Column<string>(type: "text", nullable: false),
|
|
ShortName = table.Column<string>(type: "text", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Currencies", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Currencies_CurrencyGlobals_CurrencyGlobalId",
|
|
column: x => x.CurrencyGlobalId,
|
|
principalTable: "CurrencyGlobals",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_Currencies_Users_UserId",
|
|
column: x => x.UserId,
|
|
principalTable: "Users",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "ItemCategories",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
Name = table.Column<string>(type: "text", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_ItemCategories", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_ItemCategories_Users_UserId",
|
|
column: x => x.UserId,
|
|
principalTable: "Users",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "UserClaims",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
CreatedOn = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
ExternalId = table.Column<string>(type: "text", nullable: false),
|
|
Email = table.Column<string>(type: "text", nullable: false, collation: "my_ci_collation"),
|
|
Provider = table.Column<string>(type: "text", nullable: false, collation: "my_ci_collation")
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_UserClaims", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_UserClaims_Users_UserId",
|
|
column: x => x.UserId,
|
|
principalTable: "Users",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "AccountAccountCategories",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
AccountId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
CategoryId = table.Column<Guid>(type: "uuid", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_AccountAccountCategories", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_AccountAccountCategories_AccountCategories_CategoryId",
|
|
column: x => x.CategoryId,
|
|
principalTable: "AccountCategories",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_AccountAccountCategories_Accounts_AccountId",
|
|
column: x => x.AccountId,
|
|
principalTable: "Accounts",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "CurrencyRates",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
CurrencyId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
DateTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
Quantity = table.Column<int>(type: "integer", nullable: false),
|
|
Rate = table.Column<decimal>(type: "numeric", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_CurrencyRates", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_CurrencyRates_Currencies_CurrencyId",
|
|
column: x => x.CurrencyId,
|
|
principalTable: "Currencies",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Items",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
CategoryId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
ItemGlobalId = table.Column<Guid>(type: "uuid", nullable: false)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Items", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Items_ItemCategories_CategoryId",
|
|
column: x => x.CategoryId,
|
|
principalTable: "ItemCategories",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_Items_ItemGlobals_ItemGlobalId",
|
|
column: x => x.ItemGlobalId,
|
|
principalTable: "ItemGlobals",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
});
|
|
|
|
migrationBuilder.CreateTable(
|
|
name: "Motions",
|
|
columns: table => new
|
|
{
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
CreatedOn = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
DateTime = table.Column<DateTime>(type: "timestamp with time zone", nullable: false),
|
|
AccountId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
ItemId = table.Column<int>(type: "integer", nullable: false),
|
|
Description = table.Column<string>(type: "text", nullable: true),
|
|
AmountPlus = table.Column<decimal>(type: "numeric(18,6)", precision: 18, scale: 6, nullable: false),
|
|
AmountMinus = table.Column<decimal>(type: "numeric(18,6)", precision: 18, scale: 6, nullable: false),
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: true)
|
|
},
|
|
constraints: table =>
|
|
{
|
|
table.PrimaryKey("PK_Motions", x => x.Id);
|
|
table.ForeignKey(
|
|
name: "FK_Motions_Accounts_AccountId",
|
|
column: x => x.AccountId,
|
|
principalTable: "Accounts",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_Motions_Items_ItemId",
|
|
column: x => x.ItemId,
|
|
principalTable: "Items",
|
|
principalColumn: "Id",
|
|
onDelete: ReferentialAction.Cascade);
|
|
table.ForeignKey(
|
|
name: "FK_Motions_Users_UserId",
|
|
column: x => x.UserId,
|
|
principalTable: "Users",
|
|
principalColumn: "Id");
|
|
});
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_AccountAccesses_AccountId",
|
|
table: "AccountAccesses",
|
|
column: "AccountId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_AccountAccesses_UserId",
|
|
table: "AccountAccesses",
|
|
column: "UserId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_AccountAccountCategories_AccountId",
|
|
table: "AccountAccountCategories",
|
|
column: "AccountId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_AccountAccountCategories_CategoryId",
|
|
table: "AccountAccountCategories",
|
|
column: "CategoryId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_AccountCategories_UserId",
|
|
table: "AccountCategories",
|
|
column: "UserId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Accounts_CurrencyGlobalId",
|
|
table: "Accounts",
|
|
column: "CurrencyGlobalId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Currencies_CurrencyGlobalId",
|
|
table: "Currencies",
|
|
column: "CurrencyGlobalId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Currencies_UserId",
|
|
table: "Currencies",
|
|
column: "UserId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_CurrencyRates_CurrencyId",
|
|
table: "CurrencyRates",
|
|
column: "CurrencyId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_ItemCategories_UserId",
|
|
table: "ItemCategories",
|
|
column: "UserId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Items_CategoryId",
|
|
table: "Items",
|
|
column: "CategoryId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Items_ItemGlobalId",
|
|
table: "Items",
|
|
column: "ItemGlobalId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Motions_AccountId",
|
|
table: "Motions",
|
|
column: "AccountId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Motions_ItemId",
|
|
table: "Motions",
|
|
column: "ItemId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Motions_UserId",
|
|
table: "Motions",
|
|
column: "UserId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_UserClaims_UserId",
|
|
table: "UserClaims",
|
|
column: "UserId");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "IX_Users_CurrencyId",
|
|
table: "Users",
|
|
column: "CurrencyId");
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropTable(
|
|
name: "AccountAccesses");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "AccountAccountCategories");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "CurrencyRates");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Motions");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "UserClaims");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "AccountCategories");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Currencies");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Accounts");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Items");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ItemCategories");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "ItemGlobals");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "Users");
|
|
|
|
migrationBuilder.DropTable(
|
|
name: "CurrencyGlobals");
|
|
}
|
|
}
|
|
}
|