using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable namespace timetracker.Data.Migrations { /// public partial class AddMultiTenancy : Migration { /// protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.AddColumn( name: "TenantId", table: "WorkDays", type: "INTEGER", nullable: true); migrationBuilder.AddColumn( name: "TenantId", table: "VacationDays", type: "INTEGER", nullable: true); migrationBuilder.AddColumn( name: "TenantId", table: "Users", type: "INTEGER", nullable: true); migrationBuilder.AddColumn( name: "TenantId", table: "AppSettings", type: "INTEGER", nullable: true); migrationBuilder.CreateTable( name: "Tenants", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), Name = table.Column(type: "TEXT", nullable: false), Subdomain = table.Column(type: "TEXT", nullable: false), IsApproved = table.Column(type: "INTEGER", nullable: false), CreatedAt = table.Column(type: "TEXT", nullable: false) }, constraints: table => { table.PrimaryKey("PK_Tenants", x => x.Id); }); migrationBuilder.CreateIndex( name: "IX_Users_TenantId", table: "Users", column: "TenantId"); migrationBuilder.CreateIndex( name: "IX_Tenants_Subdomain", table: "Tenants", column: "Subdomain", unique: true); migrationBuilder.AddForeignKey( name: "FK_Users_Tenants_TenantId", table: "Users", column: "TenantId", principalTable: "Tenants", principalColumn: "Id"); } /// protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropForeignKey( name: "FK_Users_Tenants_TenantId", table: "Users"); migrationBuilder.DropTable( name: "Tenants"); migrationBuilder.DropIndex( name: "IX_Users_TenantId", table: "Users"); migrationBuilder.DropColumn( name: "TenantId", table: "WorkDays"); migrationBuilder.DropColumn( name: "TenantId", table: "VacationDays"); migrationBuilder.DropColumn( name: "TenantId", table: "Users"); migrationBuilder.DropColumn( name: "TenantId", table: "AppSettings"); } } }