2022-06-30 01:46:41 +02:00
|
|
|
|
using Microsoft.EntityFrameworkCore.Migrations;
|
Postgres & MySql Support For Self-Hosted Installations (#1386)
* EF Database Support Init (#1221)
* scaffolding for ef support
* deleted old postgres repos
* added tables to oncreate
* updated all the things to .NET 5
* Addition to #1221: Migrated DockerFiles from dotnet/3.1 to 5.0 (#1223)
* Migrated DockerFiles from dotnet/3.1 to 5.0
* Migrated SSO/Dockerfile from dotnet 3.1 to 5.0
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* EFDatabaseSupport: Updated links and description in README.md and SETUP.md (#1232)
* Updated requirements in README.md
* Updated link to documentation of app-secrets
* upgraded dotnet version to 5.0
* Ef database support implementation examples (#1265)
* mostly finished testing the user repo
* finished testing user repo
* finished org, user, ssoconfig, and ssouser ef implementations
* removed unused prop
* fixed a sql file
* fixed a spacing issue
* fixed a spacing issue
* removed extra database creation
* refactoring
* MsSql => SqlServer
* refactoring
* code review fixes
* build fix
* code review
* continued attempts to fix the the build
* skipped another test
* finished all create test
* initial pass at several repos
* continued building out repos
* initial pass at several repos
* initial pass at device repo
* initial pass at collection repo
* initial run of all Entity Framework implementations
* signup, signin, create/edit ciphers works
* sync working
* all web vault pages seem to load with 100% 200s
* bulkcopy, folders, and favorites
* group and collection management
* sso, groups, emergency access, send
* get basic creates matching on all repos
* got everything building again post merge
* removed some IDE config files
* cleanup
* no more notimplemented methods in the cipher repo
* no more not implementeds everywhere
* cleaned up schema/navigation properties and fixed tests
* removed a sql comment that was written in c# style
* fixed build issues from merge
* removed unsupported db providers
* formatting
* code review refactors
* naming cleanup for queries
* added provider methods
* cipher repo cleanup
* implemented several missing procedures from the EF implementation surround account revision dates, keys, and storage
* fixed the build
* added a null check
* consolidated some cipher repo methods
* formatting fix
* cleaned up indentation of queries
* removed .idea file
* generated postgres migrations
* added mysql migrations
* formatting
* Bug Fixes & Formatting
* Formatting
* fixed a bug with bulk import when using MySql
* code review fixes
* fixed the build
* implemented new methods
* formatting
* fixed the build
* cleaned up select statements in ef queries
* formatting
* formatting
* formatting
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2021-07-08 18:35:48 +02:00
|
|
|
|
using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata;
|
|
|
|
|
|
2021-07-08 21:46:13 +02:00
|
|
|
|
namespace Bit.PostgresMigrations.Migrations
|
Postgres & MySql Support For Self-Hosted Installations (#1386)
* EF Database Support Init (#1221)
* scaffolding for ef support
* deleted old postgres repos
* added tables to oncreate
* updated all the things to .NET 5
* Addition to #1221: Migrated DockerFiles from dotnet/3.1 to 5.0 (#1223)
* Migrated DockerFiles from dotnet/3.1 to 5.0
* Migrated SSO/Dockerfile from dotnet 3.1 to 5.0
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* EFDatabaseSupport: Updated links and description in README.md and SETUP.md (#1232)
* Updated requirements in README.md
* Updated link to documentation of app-secrets
* upgraded dotnet version to 5.0
* Ef database support implementation examples (#1265)
* mostly finished testing the user repo
* finished testing user repo
* finished org, user, ssoconfig, and ssouser ef implementations
* removed unused prop
* fixed a sql file
* fixed a spacing issue
* fixed a spacing issue
* removed extra database creation
* refactoring
* MsSql => SqlServer
* refactoring
* code review fixes
* build fix
* code review
* continued attempts to fix the the build
* skipped another test
* finished all create test
* initial pass at several repos
* continued building out repos
* initial pass at several repos
* initial pass at device repo
* initial pass at collection repo
* initial run of all Entity Framework implementations
* signup, signin, create/edit ciphers works
* sync working
* all web vault pages seem to load with 100% 200s
* bulkcopy, folders, and favorites
* group and collection management
* sso, groups, emergency access, send
* get basic creates matching on all repos
* got everything building again post merge
* removed some IDE config files
* cleanup
* no more notimplemented methods in the cipher repo
* no more not implementeds everywhere
* cleaned up schema/navigation properties and fixed tests
* removed a sql comment that was written in c# style
* fixed build issues from merge
* removed unsupported db providers
* formatting
* code review refactors
* naming cleanup for queries
* added provider methods
* cipher repo cleanup
* implemented several missing procedures from the EF implementation surround account revision dates, keys, and storage
* fixed the build
* added a null check
* consolidated some cipher repo methods
* formatting fix
* cleaned up indentation of queries
* removed .idea file
* generated postgres migrations
* added mysql migrations
* formatting
* Bug Fixes & Formatting
* Formatting
* fixed a bug with bulk import when using MySql
* code review fixes
* fixed the build
* implemented new methods
* formatting
* fixed the build
* cleaned up select statements in ef queries
* formatting
* formatting
* formatting
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2021-07-08 18:35:48 +02:00
|
|
|
|
{
|
2021-07-08 21:46:13 +02:00
|
|
|
|
public partial class Init : Migration
|
Postgres & MySql Support For Self-Hosted Installations (#1386)
* EF Database Support Init (#1221)
* scaffolding for ef support
* deleted old postgres repos
* added tables to oncreate
* updated all the things to .NET 5
* Addition to #1221: Migrated DockerFiles from dotnet/3.1 to 5.0 (#1223)
* Migrated DockerFiles from dotnet/3.1 to 5.0
* Migrated SSO/Dockerfile from dotnet 3.1 to 5.0
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* EFDatabaseSupport: Updated links and description in README.md and SETUP.md (#1232)
* Updated requirements in README.md
* Updated link to documentation of app-secrets
* upgraded dotnet version to 5.0
* Ef database support implementation examples (#1265)
* mostly finished testing the user repo
* finished testing user repo
* finished org, user, ssoconfig, and ssouser ef implementations
* removed unused prop
* fixed a sql file
* fixed a spacing issue
* fixed a spacing issue
* removed extra database creation
* refactoring
* MsSql => SqlServer
* refactoring
* code review fixes
* build fix
* code review
* continued attempts to fix the the build
* skipped another test
* finished all create test
* initial pass at several repos
* continued building out repos
* initial pass at several repos
* initial pass at device repo
* initial pass at collection repo
* initial run of all Entity Framework implementations
* signup, signin, create/edit ciphers works
* sync working
* all web vault pages seem to load with 100% 200s
* bulkcopy, folders, and favorites
* group and collection management
* sso, groups, emergency access, send
* get basic creates matching on all repos
* got everything building again post merge
* removed some IDE config files
* cleanup
* no more notimplemented methods in the cipher repo
* no more not implementeds everywhere
* cleaned up schema/navigation properties and fixed tests
* removed a sql comment that was written in c# style
* fixed build issues from merge
* removed unsupported db providers
* formatting
* code review refactors
* naming cleanup for queries
* added provider methods
* cipher repo cleanup
* implemented several missing procedures from the EF implementation surround account revision dates, keys, and storage
* fixed the build
* added a null check
* consolidated some cipher repo methods
* formatting fix
* cleaned up indentation of queries
* removed .idea file
* generated postgres migrations
* added mysql migrations
* formatting
* Bug Fixes & Formatting
* Formatting
* fixed a bug with bulk import when using MySql
* code review fixes
* fixed the build
* implemented new methods
* formatting
* fixed the build
* cleaned up select statements in ef queries
* formatting
* formatting
* formatting
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2021-07-08 18:35:48 +02:00
|
|
|
|
{
|
|
|
|
|
protected override void Up(MigrationBuilder migrationBuilder)
|
|
|
|
|
{
|
|
|
|
|
migrationBuilder.AlterDatabase()
|
|
|
|
|
.Annotation("Npgsql:CollationDefinition:postgresIndetermanisticCollation", "en-u-ks-primary,en-u-ks-primary,icu,False");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Event",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
Date = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
Type = table.Column<int>(type: "integer", nullable: false),
|
|
|
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
OrganizationId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
CipherId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
CollectionId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
PolicyId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
GroupId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
OrganizationUserId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
DeviceType = table.Column<byte>(type: "smallint", nullable: true),
|
|
|
|
|
IpAddress = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
ActingUserId = table.Column<Guid>(type: "uuid", nullable: true)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Event", x => x.Id);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Grant",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Key = table.Column<string>(type: "character varying(200)", maxLength: 200, nullable: false),
|
|
|
|
|
Type = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
SubjectId = table.Column<string>(type: "character varying(200)", maxLength: 200, nullable: true),
|
|
|
|
|
SessionId = table.Column<string>(type: "character varying(100)", maxLength: 100, nullable: true),
|
|
|
|
|
ClientId = table.Column<string>(type: "character varying(200)", maxLength: 200, nullable: true),
|
|
|
|
|
Description = table.Column<string>(type: "character varying(200)", maxLength: 200, nullable: true),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
ExpirationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: true),
|
|
|
|
|
ConsumedDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: true),
|
|
|
|
|
Data = table.Column<string>(type: "text", nullable: true)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Grant", x => x.Key);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Installation",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
Email = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
|
|
|
|
Key = table.Column<string>(type: "character varying(150)", maxLength: 150, nullable: true),
|
|
|
|
|
Enabled = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Installation", x => x.Id);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Organization",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
Identifier = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true, collation: "postgresIndetermanisticCollation"),
|
|
|
|
|
Name = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
BusinessName = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
BusinessAddress1 = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
BusinessAddress2 = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
BusinessAddress3 = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
BusinessCountry = table.Column<string>(type: "character varying(2)", maxLength: 2, nullable: true),
|
|
|
|
|
BusinessTaxNumber = table.Column<string>(type: "character varying(30)", maxLength: 30, nullable: true),
|
|
|
|
|
BillingEmail = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
|
|
|
|
Plan = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
PlanType = table.Column<byte>(type: "smallint", nullable: false),
|
|
|
|
|
Seats = table.Column<int>(type: "integer", nullable: true),
|
|
|
|
|
MaxCollections = table.Column<short>(type: "smallint", nullable: true),
|
|
|
|
|
UsePolicies = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
UseSso = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
UseGroups = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
UseDirectory = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
UseEvents = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
UseTotp = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
Use2fa = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
UseApi = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
UseResetPassword = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
SelfHost = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
UsersGetPremium = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
Storage = table.Column<long>(type: "bigint", nullable: true),
|
|
|
|
|
MaxStorageGb = table.Column<short>(type: "smallint", nullable: true),
|
|
|
|
|
Gateway = table.Column<byte>(type: "smallint", nullable: true),
|
|
|
|
|
GatewayCustomerId = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
GatewaySubscriptionId = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
ReferenceData = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
Enabled = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
LicenseKey = table.Column<string>(type: "character varying(100)", maxLength: 100, nullable: true),
|
|
|
|
|
ApiKey = table.Column<string>(type: "character varying(30)", maxLength: 30, nullable: true),
|
|
|
|
|
PublicKey = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
PrivateKey = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
TwoFactorProviders = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
ExpirationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: true),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
RevisionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Organization", x => x.Id);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Provider",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
Name = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
BusinessName = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
BusinessAddress1 = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
BusinessAddress2 = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
BusinessAddress3 = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
BusinessCountry = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
BusinessTaxNumber = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
BillingEmail = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
Status = table.Column<byte>(type: "smallint", nullable: false),
|
2021-07-08 21:46:13 +02:00
|
|
|
|
UseEvents = table.Column<bool>(type: "boolean", nullable: false),
|
Postgres & MySql Support For Self-Hosted Installations (#1386)
* EF Database Support Init (#1221)
* scaffolding for ef support
* deleted old postgres repos
* added tables to oncreate
* updated all the things to .NET 5
* Addition to #1221: Migrated DockerFiles from dotnet/3.1 to 5.0 (#1223)
* Migrated DockerFiles from dotnet/3.1 to 5.0
* Migrated SSO/Dockerfile from dotnet 3.1 to 5.0
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
* EFDatabaseSupport: Updated links and description in README.md and SETUP.md (#1232)
* Updated requirements in README.md
* Updated link to documentation of app-secrets
* upgraded dotnet version to 5.0
* Ef database support implementation examples (#1265)
* mostly finished testing the user repo
* finished testing user repo
* finished org, user, ssoconfig, and ssouser ef implementations
* removed unused prop
* fixed a sql file
* fixed a spacing issue
* fixed a spacing issue
* removed extra database creation
* refactoring
* MsSql => SqlServer
* refactoring
* code review fixes
* build fix
* code review
* continued attempts to fix the the build
* skipped another test
* finished all create test
* initial pass at several repos
* continued building out repos
* initial pass at several repos
* initial pass at device repo
* initial pass at collection repo
* initial run of all Entity Framework implementations
* signup, signin, create/edit ciphers works
* sync working
* all web vault pages seem to load with 100% 200s
* bulkcopy, folders, and favorites
* group and collection management
* sso, groups, emergency access, send
* get basic creates matching on all repos
* got everything building again post merge
* removed some IDE config files
* cleanup
* no more notimplemented methods in the cipher repo
* no more not implementeds everywhere
* cleaned up schema/navigation properties and fixed tests
* removed a sql comment that was written in c# style
* fixed build issues from merge
* removed unsupported db providers
* formatting
* code review refactors
* naming cleanup for queries
* added provider methods
* cipher repo cleanup
* implemented several missing procedures from the EF implementation surround account revision dates, keys, and storage
* fixed the build
* added a null check
* consolidated some cipher repo methods
* formatting fix
* cleaned up indentation of queries
* removed .idea file
* generated postgres migrations
* added mysql migrations
* formatting
* Bug Fixes & Formatting
* Formatting
* fixed a bug with bulk import when using MySql
* code review fixes
* fixed the build
* implemented new methods
* formatting
* fixed the build
* cleaned up select statements in ef queries
* formatting
* formatting
* formatting
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2021-07-08 18:35:48 +02:00
|
|
|
|
Enabled = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
RevisionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Provider", x => x.Id);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "TaxRate",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<string>(type: "character varying(40)", maxLength: 40, nullable: false),
|
|
|
|
|
Country = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
State = table.Column<string>(type: "character varying(2)", maxLength: 2, nullable: true),
|
|
|
|
|
PostalCode = table.Column<string>(type: "character varying(10)", maxLength: 10, nullable: true),
|
|
|
|
|
Rate = table.Column<decimal>(type: "numeric", nullable: false),
|
|
|
|
|
Active = table.Column<bool>(type: "boolean", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_TaxRate", x => x.Id);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "User",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
Name = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
Email = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: false, collation: "postgresIndetermanisticCollation"),
|
|
|
|
|
EmailVerified = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
MasterPassword = table.Column<string>(type: "character varying(300)", maxLength: 300, nullable: true),
|
|
|
|
|
MasterPasswordHint = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
Culture = table.Column<string>(type: "character varying(10)", maxLength: 10, nullable: true),
|
|
|
|
|
SecurityStamp = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: false),
|
|
|
|
|
TwoFactorProviders = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
TwoFactorRecoveryCode = table.Column<string>(type: "character varying(32)", maxLength: 32, nullable: true),
|
|
|
|
|
EquivalentDomains = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
ExcludedGlobalEquivalentDomains = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
AccountRevisionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
Key = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
PublicKey = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
PrivateKey = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
Premium = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
PremiumExpirationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: true),
|
|
|
|
|
RenewalReminderDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: true),
|
|
|
|
|
Storage = table.Column<long>(type: "bigint", nullable: true),
|
|
|
|
|
MaxStorageGb = table.Column<short>(type: "smallint", nullable: true),
|
|
|
|
|
Gateway = table.Column<byte>(type: "smallint", nullable: true),
|
|
|
|
|
GatewayCustomerId = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
GatewaySubscriptionId = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
ReferenceData = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
LicenseKey = table.Column<string>(type: "character varying(100)", maxLength: 100, nullable: true),
|
|
|
|
|
ApiKey = table.Column<string>(type: "character varying(30)", maxLength: 30, nullable: false),
|
|
|
|
|
Kdf = table.Column<byte>(type: "smallint", nullable: false),
|
|
|
|
|
KdfIterations = table.Column<int>(type: "integer", nullable: false),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
RevisionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_User", x => x.Id);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Collection",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
OrganizationId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
Name = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
ExternalId = table.Column<string>(type: "character varying(300)", maxLength: 300, nullable: true),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
RevisionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Collection", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Collection_Organization_OrganizationId",
|
|
|
|
|
column: x => x.OrganizationId,
|
|
|
|
|
principalTable: "Organization",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Group",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
OrganizationId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
Name = table.Column<string>(type: "character varying(100)", maxLength: 100, nullable: true),
|
|
|
|
|
AccessAll = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
ExternalId = table.Column<string>(type: "character varying(300)", maxLength: 300, nullable: true),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
RevisionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Group", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Group_Organization_OrganizationId",
|
|
|
|
|
column: x => x.OrganizationId,
|
|
|
|
|
principalTable: "Organization",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Policy",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
OrganizationId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
Type = table.Column<byte>(type: "smallint", nullable: false),
|
|
|
|
|
Data = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
Enabled = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
RevisionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Policy", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Policy_Organization_OrganizationId",
|
|
|
|
|
column: x => x.OrganizationId,
|
|
|
|
|
principalTable: "Organization",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "SsoConfig",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
|
|
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
|
|
|
Enabled = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
OrganizationId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
Data = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
RevisionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_SsoConfig", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_SsoConfig_Organization_OrganizationId",
|
|
|
|
|
column: x => x.OrganizationId,
|
|
|
|
|
principalTable: "Organization",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "ProviderOrganization",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
ProviderId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
OrganizationId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
Key = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
Settings = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
RevisionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_ProviderOrganization", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_ProviderOrganization_Organization_OrganizationId",
|
|
|
|
|
column: x => x.OrganizationId,
|
|
|
|
|
principalTable: "Organization",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_ProviderOrganization_Provider_ProviderId",
|
|
|
|
|
column: x => x.ProviderId,
|
|
|
|
|
principalTable: "Provider",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Cipher",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
OrganizationId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
Type = table.Column<byte>(type: "smallint", nullable: false),
|
|
|
|
|
Data = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
Favorites = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
Folders = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
Attachments = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
RevisionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
DeletedDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: true),
|
|
|
|
|
Reprompt = table.Column<byte>(type: "smallint", nullable: true)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Cipher", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Cipher_Organization_OrganizationId",
|
|
|
|
|
column: x => x.OrganizationId,
|
|
|
|
|
principalTable: "Organization",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Restrict);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Cipher_User_UserId",
|
|
|
|
|
column: x => x.UserId,
|
|
|
|
|
principalTable: "User",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Restrict);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Device",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
Name = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
Type = table.Column<byte>(type: "smallint", nullable: false),
|
|
|
|
|
Identifier = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
PushToken = table.Column<string>(type: "character varying(255)", maxLength: 255, nullable: true),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
RevisionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Device", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Device_User_UserId",
|
|
|
|
|
column: x => x.UserId,
|
|
|
|
|
principalTable: "User",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "EmergencyAccess",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
GrantorId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
GranteeId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
Email = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
|
|
|
|
KeyEncrypted = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
Type = table.Column<byte>(type: "smallint", nullable: false),
|
|
|
|
|
Status = table.Column<byte>(type: "smallint", nullable: false),
|
|
|
|
|
WaitTimeDays = table.Column<int>(type: "integer", nullable: false),
|
|
|
|
|
RecoveryInitiatedDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: true),
|
|
|
|
|
LastNotificationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: true),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
RevisionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_EmergencyAccess", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_EmergencyAccess_User_GranteeId",
|
|
|
|
|
column: x => x.GranteeId,
|
|
|
|
|
principalTable: "User",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Restrict);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_EmergencyAccess_User_GrantorId",
|
|
|
|
|
column: x => x.GrantorId,
|
|
|
|
|
principalTable: "User",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Folder",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
Name = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
RevisionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Folder", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Folder_User_UserId",
|
|
|
|
|
column: x => x.UserId,
|
|
|
|
|
principalTable: "User",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "OrganizationUser",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
OrganizationId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
Email = table.Column<string>(type: "character varying(256)", maxLength: 256, nullable: true),
|
|
|
|
|
Key = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
ResetPasswordKey = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
Status = table.Column<byte>(type: "smallint", nullable: false),
|
|
|
|
|
Type = table.Column<byte>(type: "smallint", nullable: false),
|
|
|
|
|
AccessAll = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
ExternalId = table.Column<string>(type: "character varying(300)", maxLength: 300, nullable: true),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
RevisionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
Permissions = table.Column<string>(type: "text", nullable: true)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_OrganizationUser", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_OrganizationUser_Organization_OrganizationId",
|
|
|
|
|
column: x => x.OrganizationId,
|
|
|
|
|
principalTable: "Organization",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_OrganizationUser_User_UserId",
|
|
|
|
|
column: x => x.UserId,
|
|
|
|
|
principalTable: "User",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Restrict);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "ProviderUser",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
ProviderId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
Email = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
Key = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
Status = table.Column<byte>(type: "smallint", nullable: false),
|
|
|
|
|
Type = table.Column<byte>(type: "smallint", nullable: false),
|
|
|
|
|
Permissions = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
RevisionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_ProviderUser", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_ProviderUser_Provider_ProviderId",
|
|
|
|
|
column: x => x.ProviderId,
|
|
|
|
|
principalTable: "Provider",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_ProviderUser_User_UserId",
|
|
|
|
|
column: x => x.UserId,
|
|
|
|
|
principalTable: "User",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Restrict);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Send",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
OrganizationId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
Type = table.Column<byte>(type: "smallint", nullable: false),
|
|
|
|
|
Data = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
Key = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
Password = table.Column<string>(type: "character varying(300)", maxLength: 300, nullable: true),
|
|
|
|
|
MaxAccessCount = table.Column<int>(type: "integer", nullable: true),
|
|
|
|
|
AccessCount = table.Column<int>(type: "integer", nullable: false),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
RevisionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
ExpirationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: true),
|
|
|
|
|
DeletionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
Disabled = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
HideEmail = table.Column<bool>(type: "boolean", nullable: true)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Send", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Send_Organization_OrganizationId",
|
|
|
|
|
column: x => x.OrganizationId,
|
|
|
|
|
principalTable: "Organization",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Restrict);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Send_User_UserId",
|
|
|
|
|
column: x => x.UserId,
|
|
|
|
|
principalTable: "User",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Restrict);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "SsoUser",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<long>(type: "bigint", nullable: false)
|
|
|
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
|
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
OrganizationId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
ExternalId = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true, collation: "postgresIndetermanisticCollation"),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_SsoUser", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_SsoUser_Organization_OrganizationId",
|
|
|
|
|
column: x => x.OrganizationId,
|
|
|
|
|
principalTable: "Organization",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Restrict);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_SsoUser_User_UserId",
|
|
|
|
|
column: x => x.UserId,
|
|
|
|
|
principalTable: "User",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "Transaction",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
OrganizationId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
Type = table.Column<byte>(type: "smallint", nullable: false),
|
|
|
|
|
Amount = table.Column<decimal>(type: "numeric", nullable: false),
|
|
|
|
|
Refunded = table.Column<bool>(type: "boolean", nullable: true),
|
|
|
|
|
RefundedAmount = table.Column<decimal>(type: "numeric", nullable: true),
|
|
|
|
|
Details = table.Column<string>(type: "character varying(100)", maxLength: 100, nullable: true),
|
|
|
|
|
PaymentMethodType = table.Column<byte>(type: "smallint", nullable: true),
|
|
|
|
|
Gateway = table.Column<byte>(type: "smallint", nullable: true),
|
|
|
|
|
GatewayId = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_Transaction", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Transaction_Organization_OrganizationId",
|
|
|
|
|
column: x => x.OrganizationId,
|
|
|
|
|
principalTable: "Organization",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Restrict);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_Transaction_User_UserId",
|
|
|
|
|
column: x => x.UserId,
|
|
|
|
|
principalTable: "User",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Restrict);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "U2f",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<int>(type: "integer", nullable: false)
|
|
|
|
|
.Annotation("Npgsql:ValueGenerationStrategy", NpgsqlValueGenerationStrategy.IdentityByDefaultColumn),
|
|
|
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
KeyHandle = table.Column<string>(type: "character varying(200)", maxLength: 200, nullable: true),
|
|
|
|
|
Challenge = table.Column<string>(type: "character varying(200)", maxLength: 200, nullable: true),
|
|
|
|
|
AppId = table.Column<string>(type: "character varying(50)", maxLength: 50, nullable: true),
|
|
|
|
|
Version = table.Column<string>(type: "character varying(20)", maxLength: 20, nullable: true),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_U2f", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_U2f_User_UserId",
|
|
|
|
|
column: x => x.UserId,
|
|
|
|
|
principalTable: "User",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "CollectionGroups",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
CollectionId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
GroupId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
ReadOnly = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
HidePasswords = table.Column<bool>(type: "boolean", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_CollectionGroups", x => new { x.CollectionId, x.GroupId });
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_CollectionGroups_Collection_CollectionId",
|
|
|
|
|
column: x => x.CollectionId,
|
|
|
|
|
principalTable: "Collection",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_CollectionGroups_Group_GroupId",
|
|
|
|
|
column: x => x.GroupId,
|
|
|
|
|
principalTable: "Group",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "CollectionCipher",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
CollectionId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
CipherId = table.Column<Guid>(type: "uuid", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_CollectionCipher", x => new { x.CollectionId, x.CipherId });
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_CollectionCipher_Cipher_CipherId",
|
|
|
|
|
column: x => x.CipherId,
|
|
|
|
|
principalTable: "Cipher",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_CollectionCipher_Collection_CollectionId",
|
|
|
|
|
column: x => x.CollectionId,
|
|
|
|
|
principalTable: "Collection",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "CollectionUsers",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
CollectionId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
OrganizationUserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: true),
|
|
|
|
|
ReadOnly = table.Column<bool>(type: "boolean", nullable: false),
|
|
|
|
|
HidePasswords = table.Column<bool>(type: "boolean", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_CollectionUsers", x => new { x.CollectionId, x.OrganizationUserId });
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_CollectionUsers_Collection_CollectionId",
|
|
|
|
|
column: x => x.CollectionId,
|
|
|
|
|
principalTable: "Collection",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_CollectionUsers_OrganizationUser_OrganizationUserId",
|
|
|
|
|
column: x => x.OrganizationUserId,
|
|
|
|
|
principalTable: "OrganizationUser",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_CollectionUsers_User_UserId",
|
|
|
|
|
column: x => x.UserId,
|
|
|
|
|
principalTable: "User",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Restrict);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "GroupUser",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
GroupId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
OrganizationUserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
UserId = table.Column<Guid>(type: "uuid", nullable: true)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_GroupUser", x => new { x.GroupId, x.OrganizationUserId });
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_GroupUser_Group_GroupId",
|
|
|
|
|
column: x => x.GroupId,
|
|
|
|
|
principalTable: "Group",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_GroupUser_OrganizationUser_OrganizationUserId",
|
|
|
|
|
column: x => x.OrganizationUserId,
|
|
|
|
|
principalTable: "OrganizationUser",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_GroupUser_User_UserId",
|
|
|
|
|
column: x => x.UserId,
|
|
|
|
|
principalTable: "User",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Restrict);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateTable(
|
|
|
|
|
name: "ProviderOrganizationProviderUser",
|
|
|
|
|
columns: table => new
|
|
|
|
|
{
|
|
|
|
|
Id = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
ProviderOrganizationId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
ProviderUserId = table.Column<Guid>(type: "uuid", nullable: false),
|
|
|
|
|
Type = table.Column<byte>(type: "smallint", nullable: false),
|
|
|
|
|
Permissions = table.Column<string>(type: "text", nullable: true),
|
|
|
|
|
CreationDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false),
|
|
|
|
|
RevisionDate = table.Column<DateTime>(type: "timestamp without time zone", nullable: false)
|
|
|
|
|
},
|
|
|
|
|
constraints: table =>
|
|
|
|
|
{
|
|
|
|
|
table.PrimaryKey("PK_ProviderOrganizationProviderUser", x => x.Id);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_ProviderOrganizationProviderUser_ProviderOrganization_Provi~",
|
|
|
|
|
column: x => x.ProviderOrganizationId,
|
|
|
|
|
principalTable: "ProviderOrganization",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
table.ForeignKey(
|
|
|
|
|
name: "FK_ProviderOrganizationProviderUser_ProviderUser_ProviderUserId",
|
|
|
|
|
column: x => x.ProviderUserId,
|
|
|
|
|
principalTable: "ProviderUser",
|
|
|
|
|
principalColumn: "Id",
|
|
|
|
|
onDelete: ReferentialAction.Cascade);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Cipher_OrganizationId",
|
|
|
|
|
table: "Cipher",
|
|
|
|
|
column: "OrganizationId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Cipher_UserId",
|
|
|
|
|
table: "Cipher",
|
|
|
|
|
column: "UserId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Collection_OrganizationId",
|
|
|
|
|
table: "Collection",
|
|
|
|
|
column: "OrganizationId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_CollectionCipher_CipherId",
|
|
|
|
|
table: "CollectionCipher",
|
|
|
|
|
column: "CipherId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_CollectionGroups_GroupId",
|
|
|
|
|
table: "CollectionGroups",
|
|
|
|
|
column: "GroupId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_CollectionUsers_OrganizationUserId",
|
|
|
|
|
table: "CollectionUsers",
|
|
|
|
|
column: "OrganizationUserId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_CollectionUsers_UserId",
|
|
|
|
|
table: "CollectionUsers",
|
|
|
|
|
column: "UserId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Device_UserId",
|
|
|
|
|
table: "Device",
|
|
|
|
|
column: "UserId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_EmergencyAccess_GranteeId",
|
|
|
|
|
table: "EmergencyAccess",
|
|
|
|
|
column: "GranteeId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_EmergencyAccess_GrantorId",
|
|
|
|
|
table: "EmergencyAccess",
|
|
|
|
|
column: "GrantorId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Folder_UserId",
|
|
|
|
|
table: "Folder",
|
|
|
|
|
column: "UserId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Group_OrganizationId",
|
|
|
|
|
table: "Group",
|
|
|
|
|
column: "OrganizationId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_GroupUser_OrganizationUserId",
|
|
|
|
|
table: "GroupUser",
|
|
|
|
|
column: "OrganizationUserId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_GroupUser_UserId",
|
|
|
|
|
table: "GroupUser",
|
|
|
|
|
column: "UserId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_OrganizationUser_OrganizationId",
|
|
|
|
|
table: "OrganizationUser",
|
|
|
|
|
column: "OrganizationId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_OrganizationUser_UserId",
|
|
|
|
|
table: "OrganizationUser",
|
|
|
|
|
column: "UserId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Policy_OrganizationId",
|
|
|
|
|
table: "Policy",
|
|
|
|
|
column: "OrganizationId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_ProviderOrganization_OrganizationId",
|
|
|
|
|
table: "ProviderOrganization",
|
|
|
|
|
column: "OrganizationId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_ProviderOrganization_ProviderId",
|
|
|
|
|
table: "ProviderOrganization",
|
|
|
|
|
column: "ProviderId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_ProviderOrganizationProviderUser_ProviderOrganizationId",
|
|
|
|
|
table: "ProviderOrganizationProviderUser",
|
|
|
|
|
column: "ProviderOrganizationId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_ProviderOrganizationProviderUser_ProviderUserId",
|
|
|
|
|
table: "ProviderOrganizationProviderUser",
|
|
|
|
|
column: "ProviderUserId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_ProviderUser_ProviderId",
|
|
|
|
|
table: "ProviderUser",
|
|
|
|
|
column: "ProviderId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_ProviderUser_UserId",
|
|
|
|
|
table: "ProviderUser",
|
|
|
|
|
column: "UserId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Send_OrganizationId",
|
|
|
|
|
table: "Send",
|
|
|
|
|
column: "OrganizationId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Send_UserId",
|
|
|
|
|
table: "Send",
|
|
|
|
|
column: "UserId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_SsoConfig_OrganizationId",
|
|
|
|
|
table: "SsoConfig",
|
|
|
|
|
column: "OrganizationId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_SsoUser_OrganizationId",
|
|
|
|
|
table: "SsoUser",
|
|
|
|
|
column: "OrganizationId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_SsoUser_UserId",
|
|
|
|
|
table: "SsoUser",
|
|
|
|
|
column: "UserId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Transaction_OrganizationId",
|
|
|
|
|
table: "Transaction",
|
|
|
|
|
column: "OrganizationId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_Transaction_UserId",
|
|
|
|
|
table: "Transaction",
|
|
|
|
|
column: "UserId");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.CreateIndex(
|
|
|
|
|
name: "IX_U2f_UserId",
|
|
|
|
|
table: "U2f",
|
|
|
|
|
column: "UserId");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected override void Down(MigrationBuilder migrationBuilder)
|
|
|
|
|
{
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "CollectionCipher");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "CollectionGroups");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "CollectionUsers");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Device");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "EmergencyAccess");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Event");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Folder");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Grant");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "GroupUser");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Installation");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Policy");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "ProviderOrganizationProviderUser");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Send");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "SsoConfig");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "SsoUser");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "TaxRate");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Transaction");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "U2f");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Cipher");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Collection");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Group");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "OrganizationUser");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "ProviderOrganization");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "ProviderUser");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Organization");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "Provider");
|
|
|
|
|
|
|
|
|
|
migrationBuilder.DropTable(
|
|
|
|
|
name: "User");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|