308 lines
13 KiB
C#
308 lines
13 KiB
C#
using System;
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
|
|
|
#nullable disable
|
|
|
|
namespace Tiku.Infrastructure.Persistence.Migrations
|
|
{
|
|
/// <inheritdoc />
|
|
public partial class LockPracticeSessionQuestionV2 : Migration
|
|
{
|
|
/// <inheritdoc />
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropForeignKey(
|
|
name: "fk_practice_session_questions_question_versions_question_owner~",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.DropForeignKey(
|
|
name: "fk_practice_session_questions_tenant_question_references_tenan~",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.DropIndex(
|
|
name: "ix_practice_session_questions_question_owner_tenant_id_questio~",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.DropIndex(
|
|
name: "ix_practice_session_questions_tenant_id_practice_session_id_co~",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.DropIndex(
|
|
name: "ix_practice_session_questions_tenant_id_question_owner_tenant_~",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.DropColumn(
|
|
name: "question_id",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.DropColumn(
|
|
name: "question_reference_id",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.DropColumn(
|
|
name: "question_version_id",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.AlterColumn<Guid>(
|
|
name: "question_revision_id",
|
|
table: "practice_session_questions",
|
|
type: "uuid",
|
|
nullable: false,
|
|
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
|
|
oldClrType: typeof(Guid),
|
|
oldType: "uuid",
|
|
oldNullable: true);
|
|
|
|
migrationBuilder.AlterColumn<Guid>(
|
|
name: "question_placement_id",
|
|
table: "practice_session_questions",
|
|
type: "uuid",
|
|
nullable: false,
|
|
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
|
|
oldClrType: typeof(Guid),
|
|
oldType: "uuid",
|
|
oldNullable: true);
|
|
|
|
migrationBuilder.AlterColumn<Guid>(
|
|
name: "question_asset_id",
|
|
table: "practice_session_questions",
|
|
type: "uuid",
|
|
nullable: false,
|
|
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
|
|
oldClrType: typeof(Guid),
|
|
oldType: "uuid",
|
|
oldNullable: true);
|
|
|
|
migrationBuilder.AlterColumn<Guid>(
|
|
name: "content_release_question_id",
|
|
table: "practice_session_questions",
|
|
type: "uuid",
|
|
nullable: false,
|
|
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
|
|
oldClrType: typeof(Guid),
|
|
oldType: "uuid",
|
|
oldNullable: true);
|
|
|
|
migrationBuilder.AlterColumn<Guid>(
|
|
name: "assessment_policy_version_id",
|
|
table: "practice_session_questions",
|
|
type: "uuid",
|
|
nullable: false,
|
|
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
|
|
oldClrType: typeof(Guid),
|
|
oldType: "uuid",
|
|
oldNullable: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "ix_practice_session_questions_tenant_id_practice_session_id_co~",
|
|
table: "practice_session_questions",
|
|
columns: new[] { "tenant_id", "practice_session_id", "content_release_question_id" },
|
|
unique: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "ix_psq_assessment_policy",
|
|
table: "practice_session_questions",
|
|
columns: new[] { "question_owner_tenant_id", "assessment_policy_version_id" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "ix_psq_question_asset",
|
|
table: "practice_session_questions",
|
|
columns: new[] { "question_owner_tenant_id", "question_asset_id" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "ix_psq_question_placement",
|
|
table: "practice_session_questions",
|
|
columns: new[] { "question_owner_tenant_id", "question_placement_id" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "ix_psq_question_revision",
|
|
table: "practice_session_questions",
|
|
columns: new[] { "question_owner_tenant_id", "question_asset_id", "question_revision_id" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "ix_psq_release_question",
|
|
table: "practice_session_questions",
|
|
columns: new[] { "question_owner_tenant_id", "content_release_question_id" });
|
|
|
|
migrationBuilder.AddForeignKey(
|
|
name: "fk_practice_session_questions_assessment_policy_versions_quest~",
|
|
table: "practice_session_questions",
|
|
columns: new[] { "question_owner_tenant_id", "assessment_policy_version_id" },
|
|
principalTable: "assessment_policy_versions",
|
|
principalColumns: new[] { "tenant_id", "id" },
|
|
onDelete: ReferentialAction.Restrict);
|
|
|
|
migrationBuilder.AddForeignKey(
|
|
name: "fk_practice_session_questions_content_release_questions_questi~",
|
|
table: "practice_session_questions",
|
|
columns: new[] { "question_owner_tenant_id", "content_release_question_id" },
|
|
principalTable: "content_release_questions",
|
|
principalColumns: new[] { "tenant_id", "id" },
|
|
onDelete: ReferentialAction.Restrict);
|
|
|
|
migrationBuilder.AddForeignKey(
|
|
name: "fk_practice_session_questions_question_assets_question_owner_t~",
|
|
table: "practice_session_questions",
|
|
columns: new[] { "question_owner_tenant_id", "question_asset_id" },
|
|
principalTable: "question_assets",
|
|
principalColumns: new[] { "tenant_id", "id" },
|
|
onDelete: ReferentialAction.Restrict);
|
|
|
|
migrationBuilder.AddForeignKey(
|
|
name: "fk_practice_session_questions_question_placements_question_own~",
|
|
table: "practice_session_questions",
|
|
columns: new[] { "question_owner_tenant_id", "question_placement_id" },
|
|
principalTable: "question_placements",
|
|
principalColumns: new[] { "tenant_id", "id" },
|
|
onDelete: ReferentialAction.Restrict);
|
|
|
|
migrationBuilder.AddForeignKey(
|
|
name: "fk_practice_session_questions_question_revisions_question_owne~",
|
|
table: "practice_session_questions",
|
|
columns: new[] { "question_owner_tenant_id", "question_asset_id", "question_revision_id" },
|
|
principalTable: "question_revisions",
|
|
principalColumns: new[] { "tenant_id", "question_asset_id", "id" },
|
|
onDelete: ReferentialAction.Restrict);
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
{
|
|
migrationBuilder.DropForeignKey(
|
|
name: "fk_practice_session_questions_assessment_policy_versions_quest~",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.DropForeignKey(
|
|
name: "fk_practice_session_questions_content_release_questions_questi~",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.DropForeignKey(
|
|
name: "fk_practice_session_questions_question_assets_question_owner_t~",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.DropForeignKey(
|
|
name: "fk_practice_session_questions_question_placements_question_own~",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.DropForeignKey(
|
|
name: "fk_practice_session_questions_question_revisions_question_owne~",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.DropIndex(
|
|
name: "ix_practice_session_questions_tenant_id_practice_session_id_co~",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.DropIndex(
|
|
name: "ix_psq_assessment_policy",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.DropIndex(
|
|
name: "ix_psq_question_asset",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.DropIndex(
|
|
name: "ix_psq_question_placement",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.DropIndex(
|
|
name: "ix_psq_question_revision",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.DropIndex(
|
|
name: "ix_psq_release_question",
|
|
table: "practice_session_questions");
|
|
|
|
migrationBuilder.AlterColumn<Guid>(
|
|
name: "question_revision_id",
|
|
table: "practice_session_questions",
|
|
type: "uuid",
|
|
nullable: true,
|
|
oldClrType: typeof(Guid),
|
|
oldType: "uuid");
|
|
|
|
migrationBuilder.AlterColumn<Guid>(
|
|
name: "question_placement_id",
|
|
table: "practice_session_questions",
|
|
type: "uuid",
|
|
nullable: true,
|
|
oldClrType: typeof(Guid),
|
|
oldType: "uuid");
|
|
|
|
migrationBuilder.AlterColumn<Guid>(
|
|
name: "question_asset_id",
|
|
table: "practice_session_questions",
|
|
type: "uuid",
|
|
nullable: true,
|
|
oldClrType: typeof(Guid),
|
|
oldType: "uuid");
|
|
|
|
migrationBuilder.AlterColumn<Guid>(
|
|
name: "content_release_question_id",
|
|
table: "practice_session_questions",
|
|
type: "uuid",
|
|
nullable: true,
|
|
oldClrType: typeof(Guid),
|
|
oldType: "uuid");
|
|
|
|
migrationBuilder.AlterColumn<Guid>(
|
|
name: "assessment_policy_version_id",
|
|
table: "practice_session_questions",
|
|
type: "uuid",
|
|
nullable: true,
|
|
oldClrType: typeof(Guid),
|
|
oldType: "uuid");
|
|
|
|
migrationBuilder.AddColumn<Guid>(
|
|
name: "question_id",
|
|
table: "practice_session_questions",
|
|
type: "uuid",
|
|
nullable: true);
|
|
|
|
migrationBuilder.AddColumn<Guid>(
|
|
name: "question_reference_id",
|
|
table: "practice_session_questions",
|
|
type: "uuid",
|
|
nullable: true);
|
|
|
|
migrationBuilder.AddColumn<Guid>(
|
|
name: "question_version_id",
|
|
table: "practice_session_questions",
|
|
type: "uuid",
|
|
nullable: true);
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "ix_practice_session_questions_question_owner_tenant_id_questio~",
|
|
table: "practice_session_questions",
|
|
columns: new[] { "question_owner_tenant_id", "question_id", "question_version_id" });
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "ix_practice_session_questions_tenant_id_practice_session_id_co~",
|
|
table: "practice_session_questions",
|
|
columns: new[] { "tenant_id", "practice_session_id", "content_release_question_id" },
|
|
unique: true,
|
|
filter: "content_release_question_id is not null");
|
|
|
|
migrationBuilder.CreateIndex(
|
|
name: "ix_practice_session_questions_tenant_id_question_owner_tenant_~",
|
|
table: "practice_session_questions",
|
|
columns: new[] { "tenant_id", "question_owner_tenant_id", "question_id" });
|
|
|
|
migrationBuilder.AddForeignKey(
|
|
name: "fk_practice_session_questions_question_versions_question_owner~",
|
|
table: "practice_session_questions",
|
|
columns: new[] { "question_owner_tenant_id", "question_id", "question_version_id" },
|
|
principalTable: "question_versions",
|
|
principalColumns: new[] { "tenant_id", "question_id", "id" },
|
|
onDelete: ReferentialAction.Restrict);
|
|
|
|
migrationBuilder.AddForeignKey(
|
|
name: "fk_practice_session_questions_tenant_question_references_tenan~",
|
|
table: "practice_session_questions",
|
|
columns: new[] { "tenant_id", "question_owner_tenant_id", "question_id" },
|
|
principalTable: "tenant_question_references",
|
|
principalColumns: new[] { "tenant_id", "question_owner_tenant_id", "question_id" },
|
|
onDelete: ReferentialAction.Restrict);
|
|
}
|
|
}
|
|
}
|