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;