diff --git a/DigitalLearningSolutions.Data.Migrations/202201111021_ChangeCompetencyAssessmentQuestionRoleRequirementsPrimaryKey.cs b/DigitalLearningSolutions.Data.Migrations/202201111021_ChangeCompetencyAssessmentQuestionRoleRequirementsPrimaryKey.cs index b14a4fe543..1a160d151e 100644 --- a/DigitalLearningSolutions.Data.Migrations/202201111021_ChangeCompetencyAssessmentQuestionRoleRequirementsPrimaryKey.cs +++ b/DigitalLearningSolutions.Data.Migrations/202201111021_ChangeCompetencyAssessmentQuestionRoleRequirementsPrimaryKey.cs @@ -5,22 +5,25 @@ [Migration(202201111021)] public class ChangeCompetencyAssessmentQuestionRoleRequirementsPrimaryKey: Migration { + // This migration is undone in 202201171115_UndoPreviousConstraintMigrationsForCompetencyAssessmentQuestionRoleRequirements + // and does not need to be run again, so it has been commented out + public override void Up() { - Delete.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") - .FromTable("CompetencyAssessmentQuestionRoleRequirements"); - Delete.Column("ID").FromTable("CompetencyAssessmentQuestionRoleRequirements"); - Create.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") - .OnTable("CompetencyAssessmentQuestionRoleRequirements").Columns("SelfAssessmentID", "CompetencyID"); + //Delete.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") + // .FromTable("CompetencyAssessmentQuestionRoleRequirements"); + //Delete.Column("ID").FromTable("CompetencyAssessmentQuestionRoleRequirements"); + //Create.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") + // .OnTable("CompetencyAssessmentQuestionRoleRequirements").Columns("SelfAssessmentID", "CompetencyID"); } public override void Down() { - Delete.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") - .FromTable("CompetencyAssessmentQuestionRoleRequirements"); - Alter.Table("CompetencyAssessmentQuestionRoleRequirements").AddColumn("ID").AsInt32().NotNullable().Identity(); - Create.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") - .OnTable("CompetencyAssessmentQuestionRoleRequirements").Column("ID"); + //Delete.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") + // .FromTable("CompetencyAssessmentQuestionRoleRequirements"); + //Alter.Table("CompetencyAssessmentQuestionRoleRequirements").AddColumn("ID").AsInt32().NotNullable().Identity(); + //Create.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") + // .OnTable("CompetencyAssessmentQuestionRoleRequirements").Column("ID"); } } } diff --git a/DigitalLearningSolutions.Data.Migrations/202201120821_ChangeUniqueConstraintsOnCompetencyAssessmentQuestionRoleRequirements.cs b/DigitalLearningSolutions.Data.Migrations/202201120821_ChangeUniqueConstraintsOnCompetencyAssessmentQuestionRoleRequirements.cs index d481493a31..2f5167c662 100644 --- a/DigitalLearningSolutions.Data.Migrations/202201120821_ChangeUniqueConstraintsOnCompetencyAssessmentQuestionRoleRequirements.cs +++ b/DigitalLearningSolutions.Data.Migrations/202201120821_ChangeUniqueConstraintsOnCompetencyAssessmentQuestionRoleRequirements.cs @@ -5,26 +5,29 @@ [Migration(202201120821)] public class ChangeUniqueConstraintsOnCompetencyAssessmentQuestionRoleRequirements: Migration { + // This migration is undone in 202201171115_UndoPreviousConstraintMigrationsForCompetencyAssessmentQuestionRoleRequirements + // and does not need to be run again, so it has been commented out + public override void Up() { - Delete.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") - .FromTable("CompetencyAssessmentQuestionRoleRequirements"); - Alter.Table("CompetencyAssessmentQuestionRoleRequirements").AddColumn("ID").AsInt32().NotNullable().Identity(); - Create.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") - .OnTable("CompetencyAssessmentQuestionRoleRequirements").Column("ID"); - Create.UniqueConstraint("IX_CompetencyAssessmentQuestionRoleRequirements_SelfAssessmentID_CompetencyID") - .OnTable("CompetencyAssessmentQuestionRoleRequirements").Columns("SelfAssessmentID", "CompetencyID"); + //Delete.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") + // .FromTable("CompetencyAssessmentQuestionRoleRequirements"); + //Alter.Table("CompetencyAssessmentQuestionRoleRequirements").AddColumn("ID").AsInt32().NotNullable().Identity(); + //Create.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") + // .OnTable("CompetencyAssessmentQuestionRoleRequirements").Column("ID"); + //Create.UniqueConstraint("IX_CompetencyAssessmentQuestionRoleRequirements_SelfAssessmentID_CompetencyID") + // .OnTable("CompetencyAssessmentQuestionRoleRequirements").Columns("SelfAssessmentID", "CompetencyID"); } public override void Down() { - Delete.UniqueConstraint("IX_CompetencyAssessmentQuestionRoleRequirements_SelfAssessmentID_CompetencyID") - .FromTable("CompetencyAssessmentQuestionRoleRequirements"); - Delete.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") - .FromTable("CompetencyAssessmentQuestionRoleRequirements"); - Delete.Column("ID").FromTable("CompetencyAssessmentQuestionRoleRequirements"); - Create.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") - .OnTable("CompetencyAssessmentQuestionRoleRequirements").Columns("SelfAssessmentID", "CompetencyID"); + //Delete.UniqueConstraint("IX_CompetencyAssessmentQuestionRoleRequirements_SelfAssessmentID_CompetencyID") + // .FromTable("CompetencyAssessmentQuestionRoleRequirements"); + //Delete.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") + // .FromTable("CompetencyAssessmentQuestionRoleRequirements"); + //Delete.Column("ID").FromTable("CompetencyAssessmentQuestionRoleRequirements"); + //Create.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") + // .OnTable("CompetencyAssessmentQuestionRoleRequirements").Columns("SelfAssessmentID", "CompetencyID"); } } } diff --git a/DigitalLearningSolutions.Data.Migrations/202201171115_UndoPreviousConstraintMigrationsForCompetencyAssessmentQuestionRoleRequirements.cs b/DigitalLearningSolutions.Data.Migrations/202201171115_UndoPreviousConstraintMigrationsForCompetencyAssessmentQuestionRoleRequirements.cs new file mode 100644 index 0000000000..2692421c9c --- /dev/null +++ b/DigitalLearningSolutions.Data.Migrations/202201171115_UndoPreviousConstraintMigrationsForCompetencyAssessmentQuestionRoleRequirements.cs @@ -0,0 +1,37 @@ +namespace DigitalLearningSolutions.Data.Migrations +{ + using FluentMigrator; + + [Migration(202201171115)] + public class UndoPreviousConstraintMigrationsForCompetencyAssessmentQuestionRoleRequirements : Migration + { + public override void Up() + { + if (Schema.Table("CompetencyAssessmentQuestionRoleRequirements").Constraint( + "IX_CompetencyAssessmentQuestionRoleRequirements_SelfAssessmentID_CompetencyID" + ).Exists()) + { + // This undoes the unwanted changes from 202201120821_ChangeUniqueConstraintsOnCompetencyAssessmentQuestionRoleRequirements + Delete.UniqueConstraint("IX_CompetencyAssessmentQuestionRoleRequirements_SelfAssessmentID_CompetencyID") + .FromTable("CompetencyAssessmentQuestionRoleRequirements"); + } + else if (!Schema.Table("CompetencyAssessmentQuestionRoleRequirements").Column("ID").Exists()) + { + // This undoes the unwanted changes from 202201111021_ChangeCompetencyAssessmentQuestionRoleRequirementsPrimaryKey + Delete.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") + .FromTable("CompetencyAssessmentQuestionRoleRequirements"); + Alter.Table("CompetencyAssessmentQuestionRoleRequirements").AddColumn("ID").AsInt32().NotNullable() + .Identity(); + Create.PrimaryKey("PK_CompetencyAssessmentQuestionRoleRequirements") + .OnTable("CompetencyAssessmentQuestionRoleRequirements").Column("ID"); + } + } + + public override void Down() + { + // The Up migration reverts the database to how it should be. + // Previous migrations that should not be run have been commented out. + // Thus this Down migration does not need to do anything. + } + } +} diff --git a/DigitalLearningSolutions.Data.Migrations/202201171130_AddUniqueConstraintToCompetencyAssessmentQuestionRoleRequirements.cs b/DigitalLearningSolutions.Data.Migrations/202201171130_AddUniqueConstraintToCompetencyAssessmentQuestionRoleRequirements.cs new file mode 100644 index 0000000000..5858f842f5 --- /dev/null +++ b/DigitalLearningSolutions.Data.Migrations/202201171130_AddUniqueConstraintToCompetencyAssessmentQuestionRoleRequirements.cs @@ -0,0 +1,29 @@ +namespace DigitalLearningSolutions.Data.Migrations +{ + using FluentMigrator; + + [Migration(202201171130)] + public class AddUniqueConstraintToCompetencyAssessmentQuestionRoleRequirements : Migration + { + public override void Up() + { + Create.UniqueConstraint( + "IX_CompetencyAssessmentQuestionRoleRequirements_SelfAssessmentID_CompetencyID_AssessmentQuestionID_LevelValue" + ) + .OnTable("CompetencyAssessmentQuestionRoleRequirements").Columns( + "SelfAssessmentID", + "CompetencyID", + "AssessmentQuestionID", + "LevelValue" + ); + } + + public override void Down() + { + Delete.UniqueConstraint( + "IX_CompetencyAssessmentQuestionRoleRequirements_SelfAssessmentID_CompetencyID_AssessmentQuestionID_LevelValue" + ) + .FromTable("CompetencyAssessmentQuestionRoleRequirements"); + } + } +} diff --git a/DigitalLearningSolutions.Web.AutomatedUiTests/SeleniumServerFactory.cs b/DigitalLearningSolutions.Web.AutomatedUiTests/SeleniumServerFactory.cs index 984e7ebe4a..7d2178aee7 100644 --- a/DigitalLearningSolutions.Web.AutomatedUiTests/SeleniumServerFactory.cs +++ b/DigitalLearningSolutions.Web.AutomatedUiTests/SeleniumServerFactory.cs @@ -31,7 +31,11 @@ protected sealed override TestServer CreateServer(IWebHostBuilder builder) RootUri = host.ServerFeatures.Get().Addresses.First(); // Fake Server to satisfy the return type - return new TestServer(new WebHostBuilder().UseStartup().UseSerilog()); + return new TestServer(new WebHostBuilder() + .UseStartup() + .UseSerilog() + .ConfigureAppConfiguration(configBuilder => { configBuilder.AddConfiguration(GetConfigForUiTests()); } + )); } protected sealed override IWebHostBuilder CreateWebHostBuilder()