1
0
mirror of https://github.com/bitwarden/server synced 2025-12-14 23:33:41 +00:00

Split LimitCollectionCreationDeletion into two database columns (#4709)

* Add new columns to `dbo.Organization` & its references

* Feed existing data into new `dbo.Organization` column

* Update Entity Framework database definitions

* Move new EF columns out of the core entity definition

* Generate Entity Framework migrations

* Feed existing data into new `Organization` Entity Framework columns

* Add a where clause to SQL migration
This commit is contained in:
Addison Beck
2024-10-03 13:43:54 -04:00
committed by GitHub
parent b196c8bfb9
commit 6a51e3b1a9
26 changed files with 17595 additions and 24 deletions

View File

@@ -0,0 +1,57 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Bit.PostgresMigrations.Migrations;
/// <inheritdoc />
public partial class SplitOrganizationLimitCollectionCreationDeletionColumn : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<bool>(
name: "LimitCollectionCreationDeletion",
table: "Organization",
type: "boolean",
nullable: false,
oldClrType: typeof(bool),
oldType: "boolean",
oldDefaultValue: true);
migrationBuilder.AddColumn<bool>(
name: "LimitCollectionCreation",
table: "Organization",
type: "boolean",
nullable: false,
defaultValue: false);
migrationBuilder.AddColumn<bool>(
name: "LimitCollectionDeletion",
table: "Organization",
type: "boolean",
nullable: false,
defaultValue: false);
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "LimitCollectionCreation",
table: "Organization");
migrationBuilder.DropColumn(
name: "LimitCollectionDeletion",
table: "Organization");
migrationBuilder.AlterColumn<bool>(
name: "LimitCollectionCreationDeletion",
table: "Organization",
type: "boolean",
nullable: false,
defaultValue: true,
oldClrType: typeof(bool),
oldType: "boolean");
}
}

View File

@@ -0,0 +1,31 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace Bit.PostgresMigrations.Migrations;
/// <inheritdoc />
public partial class SyncOrganizationLimitCollectionCreationDeletionColumn : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
// Postgres is particular about the casing of entities. It wants to
// lowercase everything by default, and convert casings
// automatically. Quoting the entity names here provides explicit &
// correct casing.
migrationBuilder.Sql(
@"
UPDATE ""Organization""
SET
""LimitCollectionCreation"" = ""LimitCollectionCreationDeletion"",
""LimitCollectionDeletion"" = ""LimitCollectionCreationDeletion"";
");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
}
}

View File

@@ -90,9 +90,14 @@ namespace Bit.PostgresMigrations.Migrations
.HasMaxLength(100)
.HasColumnType("character varying(100)");
b.Property<bool>("LimitCollectionCreation")
.HasColumnType("boolean");
b.Property<bool>("LimitCollectionCreationDeletion")
.HasColumnType("boolean")
.HasDefaultValue(true);
.HasColumnType("boolean");
b.Property<bool>("LimitCollectionDeletion")
.HasColumnType("boolean");
b.Property<int?>("MaxAutoscaleSeats")
.HasColumnType("integer");