diff --git a/src/Migrations/Migrations.csproj b/src/Migrations/Migrations.csproj index 70da199297f4e236b25ab44dd0badf4dde5c702b..28fd7ab9b6e2692d86dac37e89ef54fc4d8758af 100644 --- a/src/Migrations/Migrations.csproj +++ b/src/Migrations/Migrations.csproj @@ -26,6 +26,8 @@ + + @@ -42,6 +44,8 @@ + + diff --git a/src/Migrations/Migrations/Migration202207070957ResourceSize.cs b/src/Migrations/Migrations/Migration202207070957ResourceSize.cs new file mode 100644 index 0000000000000000000000000000000000000000..0f16b0263bedc07fe6512a8d542abb19b9ac0ec6 --- /dev/null +++ b/src/Migrations/Migrations/Migration202207070957ResourceSize.cs @@ -0,0 +1,23 @@ +using FluentMigrator; + +namespace Coscine.Migrations.Migrations +{ + //yyyymmddhhmm + [Migration(202207070957)] + public class Migration202207070957ResourceSize : Migration + { + public override void Down() + { + Alter.Table("RDSResourceType").AddColumn("Size").AsInt32().NotNullable().WithDefaultValue(0); + Alter.Table("RdsS3ResourceType").AddColumn("Size").AsInt32().NotNullable().WithDefaultValue(0); + Alter.Table("RdsS3WormResourceType").AddColumn("Size").AsInt32().NotNullable().WithDefaultValue(0); + } + + public override void Up() + { + Delete.Column("Size").FromTable("RDSResourceType"); + Delete.Column("Size").FromTable("RdsS3ResourceType"); + Delete.Column("Size").FromTable("RdsS3WormResourceType"); + } + } +} diff --git a/src/Migrations/Migrations/Migration202207191035GitlabResourceType.cs b/src/Migrations/Migrations/Migration202207191035GitlabResourceType.cs new file mode 100644 index 0000000000000000000000000000000000000000..1413e83fe256f05be13603038390e8ea2eba70e0 --- /dev/null +++ b/src/Migrations/Migrations/Migration202207191035GitlabResourceType.cs @@ -0,0 +1,82 @@ +using Coscine.Configuration; +using FluentMigrator; + +namespace Coscine.Migrations.Migrations +{ + //yyyymmddhhmm + [Migration(202207191035)] + public class Migration202207191035GitlabResourceType : Migration + { + public override void Down() + { + Delete.ForeignKey() + .FromTable("ResourceDiscipline").ForeignColumn("ResourceId") + .ToTable("Resources").PrimaryColumn("Id"); + + Create.ForeignKey() + .FromTable("ResourceDiscipline").ForeignColumn("ResourceId") + .ToTable("Resources").PrimaryColumn("Id"); + + Delete.ForeignKey() + .FromTable("ProjectResource").ForeignColumn("ResourceId") + .ToTable("Resources").PrimaryColumn("Id"); + + Create.ForeignKey() + .FromTable("ProjectResource").ForeignColumn("ResourceId") + .ToTable("Resources").PrimaryColumn("Id"); + + Execute.EmbeddedScript("Migration202207191035GitlabResourceType_down.sql"); + + Update.Table("ResourceTypes") + .Set(new { Type = "gitlab", SpecificType = "gitlab" }) + .Where(new { DisplayName = "gitlab" }); + + // delete new table GitlabResourceType + Delete.Table("GitlabResourceType"); + + // create it like it was before + Create.Table("GitlabResourceType") + .WithColumn("Id").AsGuid().PrimaryKey().WithDefault(SystemMethods.NewGuid) + .WithColumn("RepositoryNumber").AsInt32().NotNullable() + .WithColumn("RepositoryUrl").AsString(500).NotNullable() + .WithColumn("Token").AsString(100).NotNullable(); + } + + public override void Up() + { + Update.Table("ResourceTypes") + .Set(new { Type = "gitlab", SpecificType = "gitlabrwth" }) + .Where(new { DisplayName = "gitlab" }); + + Delete.ForeignKey() + .FromTable("ResourceDiscipline").ForeignColumn("ResourceId") + .ToTable("Resources").PrimaryColumn("Id"); + + Create.ForeignKey() + .FromTable("ResourceDiscipline").ForeignColumn("ResourceId") + .ToTable("Resources").PrimaryColumn("Id").OnDeleteOrUpdate(System.Data.Rule.Cascade); + + Delete.ForeignKey() + .FromTable("ProjectResource").ForeignColumn("ResourceId") + .ToTable("Resources").PrimaryColumn("Id"); + + Create.ForeignKey() + .FromTable("ProjectResource").ForeignColumn("ResourceId") + .ToTable("Resources").PrimaryColumn("Id").OnDeleteOrUpdate(System.Data.Rule.Cascade); + + // Add quotas and delete old gitlab entries from resources table + Execute.EmbeddedScript("Migration202207191035GitlabResourceType_up.sql"); + + // delete table GitlabResourceType + Delete.Table("GitlabResourceType"); + + // and create it new + Create.Table("GitlabResourceType") + .WithColumn("Id").AsGuid().PrimaryKey().WithDefault(SystemMethods.NewGuid) + .WithColumn("Branch").AsString(200).NotNullable() + .WithColumn("GitlabProjectId").AsInt32().NotNullable() + .WithColumn("RepoUrl").AsString(200).NotNullable() + .WithColumn("ProjectAccessToken").AsString(200).NotNullable(); + } + } +} \ No newline at end of file diff --git a/src/Migrations/Migrations/Migration202207191035GitlabResourceType_down.sql b/src/Migrations/Migrations/Migration202207191035GitlabResourceType_down.sql new file mode 100644 index 0000000000000000000000000000000000000000..15ae9a37f87fe5a25589ac84a28d9cbda34d9db8 --- /dev/null +++ b/src/Migrations/Migrations/Migration202207191035GitlabResourceType_down.sql @@ -0,0 +1,11 @@ +DECLARE @gitlabId AS uniqueidentifier +SELECT @gitlabId = [Id] +FROM [dbo].[ResourceTypes] +WHERE [DisplayName] = 'gitlab'; + +DELETE FROM [dbo].[ProjectQuotas] +WHERE [ResourceTypeId] = @gitlabId; + +-- delete gitlab entries from resources +DELETE FROM [dbo].[Resources] +WHERE [TypeId] = @gitlabId; \ No newline at end of file diff --git a/src/Migrations/Migrations/Migration202207191035GitlabResourceType_up.sql b/src/Migrations/Migrations/Migration202207191035GitlabResourceType_up.sql new file mode 100644 index 0000000000000000000000000000000000000000..21975fef6d38b99c1469527af03217d46e5e1b5b --- /dev/null +++ b/src/Migrations/Migrations/Migration202207191035GitlabResourceType_up.sql @@ -0,0 +1,17 @@ +DECLARE @gitlabId AS uniqueidentifier +SELECT @gitlabId = [Id] +FROM [dbo].[ResourceTypes] +WHERE [DisplayName] = 'gitlab'; + +INSERT INTO [ProjectQuotas] + ([ProjectId] + ,[ResourceTypeId] + ,[Quota] + ,[MaxQuota]) + +SELECT [Id], @gitlabId, 0, 0 +FROM [Projects]; + +-- delete old gitlab entries from resources +DELETE FROM [dbo].[Resources] +WHERE [TypeId] = @gitlabId;