sql-scripts/01_schema.sql
Rama develop · réplica de lectura del repositorio original.
IF OBJECT_ID(N'[__EFMigrationsHistory]') IS NULL
BEGIN
CREATE TABLE [__EFMigrationsHistory] (
[MigrationId] nvarchar(150) NOT NULL,
[ProductVersion] nvarchar(32) NOT NULL,
CONSTRAINT [PK___EFMigrationsHistory] PRIMARY KEY ([MigrationId])
);
END;
GO
BEGIN TRANSACTION;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [ActivityLog] (
[Id] int NOT NULL IDENTITY,
[SystemName] nvarchar(100) NOT NULL,
[EntityId] int NULL,
[EntityName] nvarchar(500) NOT NULL,
[UserId] int NOT NULL,
[Comment] nvarchar(max) NOT NULL,
[CreatedOnUtc] datetime2 NOT NULL,
[IpAddress] nvarchar(max) NOT NULL,
CONSTRAINT [PK_ActivityLog] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [Address] (
[Id] int NOT NULL IDENTITY,
[Address1] nvarchar(750) NOT NULL,
[Address2] nvarchar(750) NULL,
[City] nvarchar(100) NULL,
[ZipPostalCode] nvarchar(20) NOT NULL,
CONSTRAINT [PK_Address] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [Announcement] (
[Id] int NOT NULL IDENTITY,
[Title] nvarchar(200) NOT NULL,
[Body] nvarchar(max) NOT NULL,
[Type] int NOT NULL,
[Severity] int NOT NULL,
[Audience] int NOT NULL,
[ValidFrom] date NOT NULL,
[ValidTo] date NOT NULL,
[RequiresAcknowledgement] bit NOT NULL,
[DisplayOrder] int NOT NULL,
[Active] bit NOT NULL,
[Deleted] bit NOT NULL,
CONSTRAINT [PK_Announcement] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [AuditLog] (
[Id] int NOT NULL IDENTITY,
[EntityName] nvarchar(500) NOT NULL,
[EntityId] int NULL,
[Action] nvarchar(20) NOT NULL,
[UserId] int NULL,
[OldValues] nvarchar(max) NULL,
[NewValues] nvarchar(max) NULL,
[CreatedOnUtc] datetime2 NOT NULL,
[IpAddress] nvarchar(100) NULL,
CONSTRAINT [PK_AuditLog] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [Client] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(100) NOT NULL,
[Description] nvarchar(250) NULL,
[ContactPerson] nvarchar(100) NULL,
[PhoneNumber] nvarchar(100) NULL,
[Email] nvarchar(250) NULL,
[Website] nvarchar(750) NULL,
[Active] bit NOT NULL,
[Deleted] bit NOT NULL,
CONSTRAINT [PK_Client] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [Document] (
[Id] int NOT NULL IDENTITY,
[FileName] nvarchar(255) NOT NULL,
[FileData] varbinary(max) NOT NULL,
[ContentType] nvarchar(50) NOT NULL,
[FileSize] bigint NOT NULL,
[Extension] nvarchar(10) NOT NULL,
CONSTRAINT [PK_Document] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [EmailAccount] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(100) NOT NULL,
[Description] nvarchar(250) NULL,
[UserName] nvarchar(max) NOT NULL,
[Host] nvarchar(max) NOT NULL,
[Port] int NOT NULL,
[Password] nvarchar(max) NOT NULL,
[EnableSsl] bit NOT NULL,
[FromEmail] nvarchar(max) NOT NULL,
[FromName] nvarchar(max) NOT NULL,
[Active] bit NOT NULL,
CONSTRAINT [PK_EmailAccount] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [GenericAttribute] (
[Id] int NOT NULL IDENTITY,
[EntityId] int NOT NULL,
[KeyGroup] nvarchar(200) NOT NULL,
[Key] nvarchar(200) NOT NULL,
[Value] nvarchar(max) NOT NULL,
[CreatedOrUpdatedDate] datetime2 NULL,
CONSTRAINT [PK_GenericAttribute] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [GitConnection] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(100) NOT NULL,
[ProviderType] int NOT NULL,
[BaseUrl] nvarchar(500) NOT NULL,
[ApiUrl] nvarchar(500) NULL,
[AuthMode] int NOT NULL,
[ServiceToken] nvarchar(max) NULL,
[AppId] nvarchar(50) NULL,
[AppPrivateKey] nvarchar(max) NULL,
[OAuthClientId] nvarchar(200) NULL,
[OAuthClientSecret] nvarchar(max) NULL,
[ServiceAccountUserName] nvarchar(255) NULL,
[ServiceAccountExternalId] nvarchar(64) NULL,
[AllowInsecureHttp] bit NOT NULL,
[IsDefault] bit NOT NULL,
[Active] bit NOT NULL,
[Deleted] bit NOT NULL,
[CreatedOn] datetime2 NOT NULL,
[ModifiedOn] datetime2 NULL,
CONSTRAINT [PK_GitConnection] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [Language] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(750) NOT NULL,
[LanguageCulture] nvarchar(10) NOT NULL,
[DisplayName] nvarchar(750) NOT NULL,
[Rtl] bit NOT NULL,
[DisplayOrder] int NOT NULL,
[Active] bit NOT NULL,
CONSTRAINT [PK_Language] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [Log] (
[Id] int NOT NULL IDENTITY,
[LogLevelId] int NOT NULL,
[ShortMessage] nvarchar(max) NOT NULL,
[FullMessage] nvarchar(max) NOT NULL,
[IpAddress] nvarchar(max) NULL,
[UserId] int NULL,
[PageUrl] nvarchar(max) NULL,
[ReferrerUrl] nvarchar(max) NULL,
[CreatedOnUtc] datetime2 NOT NULL,
[LogLevel] int NOT NULL,
CONSTRAINT [PK_Log] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [Menu] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(50) NOT NULL,
[SystemName] nvarchar(100) NOT NULL,
[Code] int NOT NULL,
[ActionName] nvarchar(100) NULL,
[ControllerName] nvarchar(100) NULL,
[ParentCode] int NULL,
[Icon] nvarchar(100) NULL,
[DisplayOrder] int NOT NULL,
[Permission] nvarchar(100) NOT NULL,
[Active] bit NOT NULL,
CONSTRAINT [PK_Menu] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [NotificationChannel] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(100) NOT NULL,
[ChannelType] int NOT NULL,
[EndpointUrl] nvarchar(max) NOT NULL,
[SigningSecret] nvarchar(max) NULL,
[Active] bit NOT NULL,
[Deleted] bit NOT NULL,
[CreatedOn] datetime2 NOT NULL,
[ModifiedOn] datetime2 NULL,
[LastSentOn] datetime2 NULL,
[LastError] nvarchar(1000) NULL,
CONSTRAINT [PK_NotificationChannel] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [Setting] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(250) NOT NULL,
[Value] nvarchar(max) NOT NULL,
CONSTRAINT [PK_Setting] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [Severity] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(100) NOT NULL,
[Description] nvarchar(250) NULL,
[GroupId] int NOT NULL,
[TextColor] nvarchar(20) NULL,
[BackgroundColor] nvarchar(20) NULL,
[IconClass] nvarchar(50) NULL,
[Active] bit NOT NULL,
[Deleted] bit NOT NULL,
CONSTRAINT [PK_Severity] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [Tag] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(100) NOT NULL,
[Active] bit NOT NULL,
[Deleted] bit NOT NULL,
CONSTRAINT [PK_Tag] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [TaskType] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(100) NOT NULL,
[Description] nvarchar(250) NULL,
[GroupId] int NOT NULL,
[TextColor] nvarchar(20) NULL,
[BackgroundColor] nvarchar(20) NULL,
[IconClass] nvarchar(50) NULL,
[Active] bit NOT NULL,
[Deleted] bit NOT NULL,
CONSTRAINT [PK_TaskType] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [UserRole] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(50) NOT NULL,
[SystemName] nvarchar(50) NOT NULL,
[Description] nvarchar(250) NULL,
[SystemDefined] bit NOT NULL,
[Active] bit NOT NULL,
CONSTRAINT [PK_UserRole] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [UserRolePermission] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(100) NOT NULL,
[SystemName] nvarchar(255) NOT NULL,
[RoleGroup] nvarchar(255) NOT NULL,
[SystemDefined] bit NOT NULL,
CONSTRAINT [PK_UserRolePermission] PRIMARY KEY ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [EmailTemplate] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(100) NOT NULL,
[EmailSubject] nvarchar(max) NOT NULL,
[EmailBody] nvarchar(max) NOT NULL,
[EmailAccountId] int NOT NULL,
[Active] bit NOT NULL,
CONSTRAINT [PK_EmailTemplate] PRIMARY KEY ([Id]),
CONSTRAINT [FK_EmailTemplate_EmailAccount_EmailAccountId] FOREIGN KEY ([EmailAccountId]) REFERENCES [EmailAccount] ([Id]) ON DELETE CASCADE
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [LocaleResource] (
[Id] int NOT NULL IDENTITY,
[LanguageId] int NOT NULL,
[ResourceKey] nvarchar(100) NOT NULL,
[ResourceValue] nvarchar(max) NOT NULL,
CONSTRAINT [PK_LocaleResource] PRIMARY KEY ([Id]),
CONSTRAINT [FK_LocaleResource_Language_LanguageId] FOREIGN KEY ([LanguageId]) REFERENCES [Language] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [User] (
[Id] int NOT NULL IDENTITY,
[Code] uniqueidentifier NOT NULL,
[FirstName] nvarchar(50) NOT NULL,
[LastName] nvarchar(50) NOT NULL,
[FriendlyName] nvarchar(100) NULL,
[MobileNumber] nvarchar(10) NOT NULL,
[Email] nvarchar(150) NOT NULL,
[GenderId] int NOT NULL,
[MaritalStatus] int NOT NULL,
[DateOfBirth] date NOT NULL,
[DateOfJoin] date NOT NULL,
[LanguageId] int NOT NULL,
[AddressId] int NOT NULL,
[GitUserName] nvarchar(100) NULL,
[PhotoDocumentId] int NULL,
[SystemAccount] bit NOT NULL,
[FailedLoginAttempts] int NOT NULL,
[LastIPAddress] nvarchar(100) NULL,
[LastLoginDate] datetime2 NULL,
[LastActivityDate] datetime2 NOT NULL,
[Locked] bit NOT NULL,
[Status] int NOT NULL,
[Deleted] bit NOT NULL,
CONSTRAINT [PK_User] PRIMARY KEY ([Id]),
CONSTRAINT [FK_User_Address_AddressId] FOREIGN KEY ([AddressId]) REFERENCES [Address] ([Id]),
CONSTRAINT [FK_User_Language_LanguageId] FOREIGN KEY ([LanguageId]) REFERENCES [Language] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [AnnouncementRole] (
[Id] int NOT NULL IDENTITY,
[AnnouncementId] int NOT NULL,
[UserRoleId] int NOT NULL,
CONSTRAINT [PK_AnnouncementRole] PRIMARY KEY ([Id]),
CONSTRAINT [FK_AnnouncementRole_Announcement_AnnouncementId] FOREIGN KEY ([AnnouncementId]) REFERENCES [Announcement] ([Id]),
CONSTRAINT [FK_AnnouncementRole_UserRole_UserRoleId] FOREIGN KEY ([UserRoleId]) REFERENCES [UserRole] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [UserRolePermissionMap] (
[PermissionId] int NOT NULL,
[UserRoleId] int NOT NULL,
CONSTRAINT [PK_UserRolePermissionMap] PRIMARY KEY ([PermissionId], [UserRoleId]),
CONSTRAINT [FK_UserRolePermissionMap_UserRolePermission_PermissionId] FOREIGN KEY ([PermissionId]) REFERENCES [UserRolePermission] ([Id]),
CONSTRAINT [FK_UserRolePermissionMap_UserRole_UserRoleId] FOREIGN KEY ([UserRoleId]) REFERENCES [UserRole] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [AnnouncementAcknowledgement] (
[Id] int NOT NULL IDENTITY,
[AnnouncementId] int NOT NULL,
[UserId] int NOT NULL,
[AcknowledgedOnUtc] datetime2 NOT NULL,
CONSTRAINT [PK_AnnouncementAcknowledgement] PRIMARY KEY ([Id]),
CONSTRAINT [FK_AnnouncementAcknowledgement_Announcement_AnnouncementId] FOREIGN KEY ([AnnouncementId]) REFERENCES [Announcement] ([Id]),
CONSTRAINT [FK_AnnouncementAcknowledgement_User_UserId] FOREIGN KEY ([UserId]) REFERENCES [User] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [Project] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(100) NOT NULL,
[Description] nvarchar(250) NULL,
[StartDate] date NULL,
[EndDate] date NULL,
[ClientId] int NOT NULL,
[ProjectManagerId] int NULL,
[TeamLeadId] int NULL,
[CodeReviewerId] int NULL,
[GitProjectReference] nvarchar(50) NULL,
[ReleaseVersionFormat] nvarchar(50) NULL,
[ReleaseFullIncrement] int NULL,
[Active] bit NOT NULL,
[Deleted] bit NOT NULL,
CONSTRAINT [PK_Project] PRIMARY KEY ([Id]),
CONSTRAINT [FK_Project_Client_ClientId] FOREIGN KEY ([ClientId]) REFERENCES [Client] ([Id]),
CONSTRAINT [FK_Project_User_CodeReviewerId] FOREIGN KEY ([CodeReviewerId]) REFERENCES [User] ([Id]),
CONSTRAINT [FK_Project_User_ProjectManagerId] FOREIGN KEY ([ProjectManagerId]) REFERENCES [User] ([Id]),
CONSTRAINT [FK_Project_User_TeamLeadId] FOREIGN KEY ([TeamLeadId]) REFERENCES [User] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [UserGitAccount] (
[Id] int NOT NULL IDENTITY,
[UserId] int NOT NULL,
[GitConnectionId] int NOT NULL,
[ExternalUserId] nvarchar(64) NOT NULL,
[UserName] nvarchar(255) NOT NULL,
[DisplayName] nvarchar(255) NULL,
[TokenType] int NOT NULL,
[AccessToken] nvarchar(max) NOT NULL,
[RefreshToken] nvarchar(max) NULL,
[Scopes] nvarchar(500) NULL,
[ExpiresOn] datetime2 NULL,
[RefreshExpiresOn] datetime2 NULL,
[ConnectedOn] datetime2 NOT NULL,
[LastUsedOn] datetime2 NULL,
CONSTRAINT [PK_UserGitAccount] PRIMARY KEY ([Id]),
CONSTRAINT [FK_UserGitAccount_GitConnection_GitConnectionId] FOREIGN KEY ([GitConnectionId]) REFERENCES [GitConnection] ([Id]),
CONSTRAINT [FK_UserGitAccount_User_UserId] FOREIGN KEY ([UserId]) REFERENCES [User] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [UserNotification] (
[Id] int NOT NULL IDENTITY,
[UserId] int NOT NULL,
[Type] int NOT NULL,
[Title] nvarchar(300) NOT NULL,
[Message] nvarchar(1000) NULL,
[Url] nvarchar(500) NULL,
[DedupeKey] nvarchar(200) NULL,
[IsRead] bit NOT NULL,
[CreatedOnUtc] datetime2 NOT NULL,
[ReadOnUtc] datetime2 NULL,
CONSTRAINT [PK_UserNotification] PRIMARY KEY ([Id]),
CONSTRAINT [FK_UserNotification_User_UserId] FOREIGN KEY ([UserId]) REFERENCES [User] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [UserPassword] (
[Id] int NOT NULL IDENTITY,
[UserId] int NOT NULL,
[Password] nvarchar(max) NOT NULL,
[PasswordSalt] nvarchar(max) NOT NULL,
[CreatedOn] datetime2 NOT NULL,
CONSTRAINT [PK_UserPassword] PRIMARY KEY ([Id]),
CONSTRAINT [FK_UserPassword_User_UserId] FOREIGN KEY ([UserId]) REFERENCES [User] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [UserRoleMap] (
[UserId] int NOT NULL,
[UserRoleId] int NOT NULL,
CONSTRAINT [PK_UserRoleMap] PRIMARY KEY ([UserId], [UserRoleId]),
CONSTRAINT [FK_UserRoleMap_UserRole_UserRoleId] FOREIGN KEY ([UserRoleId]) REFERENCES [UserRole] ([Id]),
CONSTRAINT [FK_UserRoleMap_User_UserId] FOREIGN KEY ([UserId]) REFERENCES [User] ([Id]) ON DELETE CASCADE
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [CustomField] (
[Id] int NOT NULL IDENTITY,
[ProjectId] int NOT NULL,
[Label] nvarchar(max) NOT NULL,
[ResourceKey] nvarchar(100) NOT NULL,
[FieldType] int NOT NULL,
[Options] nvarchar(max) NULL,
[Mandatory] bit NOT NULL,
[ColumnClass] int NOT NULL,
[Placement] int NOT NULL,
CONSTRAINT [PK_CustomField] PRIMARY KEY ([Id]),
CONSTRAINT [FK_CustomField_Project_ProjectId] FOREIGN KEY ([ProjectId]) REFERENCES [Project] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [Module] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(100) NOT NULL,
[Description] nvarchar(max) NULL,
[ProjectId] int NULL,
[Active] bit NOT NULL,
[Deleted] bit NOT NULL,
CONSTRAINT [PK_Module] PRIMARY KEY ([Id]),
CONSTRAINT [FK_Module_Project_ProjectId] FOREIGN KEY ([ProjectId]) REFERENCES [Project] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [ProjectNotificationChannel] (
[Id] int NOT NULL IDENTITY,
[ProjectId] int NOT NULL,
[NotificationChannelId] int NOT NULL,
[Events] int NOT NULL,
[Active] bit NOT NULL,
CONSTRAINT [PK_ProjectNotificationChannel] PRIMARY KEY ([Id]),
CONSTRAINT [FK_ProjectNotificationChannel_NotificationChannel_NotificationChannelId] FOREIGN KEY ([NotificationChannelId]) REFERENCES [NotificationChannel] ([Id]),
CONSTRAINT [FK_ProjectNotificationChannel_Project_ProjectId] FOREIGN KEY ([ProjectId]) REFERENCES [Project] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [Release] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(50) NOT NULL,
[ReleaseType] int NOT NULL,
[Description] nvarchar(500) NULL,
[ProjectId] int NULL,
[ReleaseDate] date NOT NULL,
[Status] int NOT NULL,
[Deleted] bit NOT NULL,
CONSTRAINT [PK_Release] PRIMARY KEY ([Id]),
CONSTRAINT [FK_Release_Project_ProjectId] FOREIGN KEY ([ProjectId]) REFERENCES [Project] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [Reporter] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(100) NOT NULL,
[Description] nvarchar(250) NULL,
[ProjectId] int NULL,
[Active] bit NOT NULL,
[Deleted] bit NOT NULL,
CONSTRAINT [PK_Reporter] PRIMARY KEY ([Id]),
CONSTRAINT [FK_Reporter_Project_ProjectId] FOREIGN KEY ([ProjectId]) REFERENCES [Project] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [Status] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(100) NOT NULL,
[Description] nvarchar(250) NULL,
[GroupId] int NOT NULL,
[ProjectId] int NULL,
[TextColor] nvarchar(20) NULL,
[BackgroundColor] nvarchar(20) NULL,
[IconClass] nvarchar(50) NULL,
[RequiredRootCauseForBug] bit NOT NULL,
[RequiredRootCauseForCr] bit NOT NULL,
[RequiredResolutionForBug] bit NOT NULL,
[RequiredResolutionForCr] bit NOT NULL,
[RequiredMrNumberForBug] bit NOT NULL,
[RequiredMrNumberForCr] bit NOT NULL,
[SystemDefined] bit NOT NULL,
[ExternalUse] bit NOT NULL,
[Active] bit NOT NULL,
[Deleted] bit NOT NULL,
CONSTRAINT [PK_Status] PRIMARY KEY ([Id]),
CONSTRAINT [FK_Status_Project_ProjectId] FOREIGN KEY ([ProjectId]) REFERENCES [Project] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [UserProjectMap] (
[Id] int NOT NULL IDENTITY,
[UserId] int NOT NULL,
[ProjectId] int NOT NULL,
[CanReportToDo] bit NOT NULL,
[CanReportCR] bit NOT NULL,
[CanReportBug] bit NOT NULL,
[CanEdit] bit NOT NULL,
[CanClose] bit NOT NULL,
[CanReOpen] bit NOT NULL,
[CanComment] bit NOT NULL,
[CanViewOthersTask] bit NOT NULL,
[CanEditOthersTask] bit NOT NULL,
[CanAddWiki] bit NOT NULL,
[CanDeleteTask] bit NOT NULL,
[CanChangeProject] bit NOT NULL,
[CanReviewMergeRequests] bit NOT NULL,
[CanMergeMergeRequests] bit NOT NULL,
CONSTRAINT [PK_UserProjectMap] PRIMARY KEY ([Id]),
CONSTRAINT [FK_UserProjectMap_Project_ProjectId] FOREIGN KEY ([ProjectId]) REFERENCES [Project] ([Id]),
CONSTRAINT [FK_UserProjectMap_User_UserId] FOREIGN KEY ([UserId]) REFERENCES [User] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [WikiCategory] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(100) NOT NULL,
[Description] nvarchar(250) NULL,
[ParentCategoryId] int NULL,
[ProjectId] int NOT NULL,
[Deleted] bit NOT NULL,
[Active] bit NOT NULL,
CONSTRAINT [PK_WikiCategory] PRIMARY KEY ([Id]),
CONSTRAINT [FK_WikiCategory_Project_ProjectId] FOREIGN KEY ([ProjectId]) REFERENCES [Project] ([Id]),
CONSTRAINT [FK_WikiCategory_WikiCategory_ParentCategoryId] FOREIGN KEY ([ParentCategoryId]) REFERENCES [WikiCategory] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [SubModule] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(100) NOT NULL,
[Description] nvarchar(250) NULL,
[ModuleId] int NOT NULL,
[OwnerId] int NULL,
[Active] bit NOT NULL,
[Deleted] bit NOT NULL,
CONSTRAINT [PK_SubModule] PRIMARY KEY ([Id]),
CONSTRAINT [FK_SubModule_Module_ModuleId] FOREIGN KEY ([ModuleId]) REFERENCES [Module] ([Id]),
CONSTRAINT [FK_SubModule_User_OwnerId] FOREIGN KEY ([OwnerId]) REFERENCES [User] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [ReleaseProject] (
[Id] int NOT NULL IDENTITY,
[ReleaseId] int NOT NULL,
[ProjectId] int NOT NULL,
CONSTRAINT [PK_ReleaseProject] PRIMARY KEY ([Id]),
CONSTRAINT [FK_ReleaseProject_Project_ProjectId] FOREIGN KEY ([ProjectId]) REFERENCES [Project] ([Id]),
CONSTRAINT [FK_ReleaseProject_Release_ReleaseId] FOREIGN KEY ([ReleaseId]) REFERENCES [Release] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [ProjectRepository] (
[Id] int NOT NULL IDENTITY,
[ProjectId] int NOT NULL,
[GitConnectionId] int NOT NULL,
[RepoRef] nvarchar(255) NOT NULL,
[ExternalRepoId] nvarchar(64) NULL,
[DisplayName] nvarchar(255) NULL,
[WebUrl] nvarchar(500) NULL,
[DefaultBranch] nvarchar(255) NULL,
[IsPrivate] bit NULL,
[IsPrimary] bit NOT NULL,
[WebhookKey] nvarchar(64) NOT NULL,
[WebhookSecret] nvarchar(max) NULL,
[WebhookSecretCreatedOn] datetime2 NULL,
[WebhookLastDeliveryOn] datetime2 NULL,
[IssueSyncMode] int NOT NULL,
[IssueSyncEnabledOn] datetime2 NULL,
[IssueImportLabel] nvarchar(100) NULL,
[IssueSyncTaskTypeIds] nvarchar(200) NULL,
[IssueSyncComments] bit NOT NULL,
[IssueTaskTypeId] int NULL,
[IssueSeverityId] int NULL,
[IssueOpenStatusId] int NULL,
[IssueClosedStatusId] int NULL,
[IssueSyncUserId] int NULL,
[IssueImportLimitPerHour] int NOT NULL,
[IssueLastPolledOn] datetime2 NULL,
[Active] bit NOT NULL,
[Deleted] bit NOT NULL,
[CreatedOn] datetime2 NOT NULL,
[ModifiedOn] datetime2 NULL,
CONSTRAINT [PK_ProjectRepository] PRIMARY KEY ([Id]),
CONSTRAINT [FK_ProjectRepository_GitConnection_GitConnectionId] FOREIGN KEY ([GitConnectionId]) REFERENCES [GitConnection] ([Id]),
CONSTRAINT [FK_ProjectRepository_Project_ProjectId] FOREIGN KEY ([ProjectId]) REFERENCES [Project] ([Id]),
CONSTRAINT [FK_ProjectRepository_Severity_IssueSeverityId] FOREIGN KEY ([IssueSeverityId]) REFERENCES [Severity] ([Id]),
CONSTRAINT [FK_ProjectRepository_Status_IssueClosedStatusId] FOREIGN KEY ([IssueClosedStatusId]) REFERENCES [Status] ([Id]),
CONSTRAINT [FK_ProjectRepository_Status_IssueOpenStatusId] FOREIGN KEY ([IssueOpenStatusId]) REFERENCES [Status] ([Id]),
CONSTRAINT [FK_ProjectRepository_TaskType_IssueTaskTypeId] FOREIGN KEY ([IssueTaskTypeId]) REFERENCES [TaskType] ([Id]),
CONSTRAINT [FK_ProjectRepository_User_IssueSyncUserId] FOREIGN KEY ([IssueSyncUserId]) REFERENCES [User] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [StatusDurationMetric] (
[Id] int NOT NULL IDENTITY,
[Name] nvarchar(100) NOT NULL,
[FromStatusId] int NOT NULL,
[ToStatusId] int NOT NULL,
[ProjectId] int NULL,
[ShowOnTask] bit NOT NULL,
[DisplayOrder] int NOT NULL,
[Active] bit NOT NULL,
[Deleted] bit NOT NULL,
CONSTRAINT [PK_StatusDurationMetric] PRIMARY KEY ([Id]),
CONSTRAINT [FK_StatusDurationMetric_Project_ProjectId] FOREIGN KEY ([ProjectId]) REFERENCES [Project] ([Id]),
CONSTRAINT [FK_StatusDurationMetric_Status_FromStatusId] FOREIGN KEY ([FromStatusId]) REFERENCES [Status] ([Id]),
CONSTRAINT [FK_StatusDurationMetric_Status_ToStatusId] FOREIGN KEY ([ToStatusId]) REFERENCES [Status] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [WikiDocument] (
[Id] int NOT NULL IDENTITY,
[Title] nvarchar(250) NOT NULL,
[ContentHtml] nvarchar(max) NOT NULL,
[CategoryId] int NOT NULL,
[ModuleId] int NULL,
[SubModuleId] int NULL,
[CreatedOn] datetime2 NOT NULL,
[CreatedById] int NOT NULL,
[ModifiedOn] datetime2 NOT NULL,
[ModifiedById] int NOT NULL,
[Deleted] bit NOT NULL,
CONSTRAINT [PK_WikiDocument] PRIMARY KEY ([Id]),
CONSTRAINT [FK_WikiDocument_Module_ModuleId] FOREIGN KEY ([ModuleId]) REFERENCES [Module] ([Id]),
CONSTRAINT [FK_WikiDocument_SubModule_SubModuleId] FOREIGN KEY ([SubModuleId]) REFERENCES [SubModule] ([Id]),
CONSTRAINT [FK_WikiDocument_User_CreatedById] FOREIGN KEY ([CreatedById]) REFERENCES [User] ([Id]),
CONSTRAINT [FK_WikiDocument_User_ModifiedById] FOREIGN KEY ([ModifiedById]) REFERENCES [User] ([Id]),
CONSTRAINT [FK_WikiDocument_WikiCategory_CategoryId] FOREIGN KEY ([CategoryId]) REFERENCES [WikiCategory] ([Id]) ON DELETE CASCADE
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [GitBranch] (
[Id] int NOT NULL IDENTITY,
[ProjectId] int NOT NULL,
[ProjectRepositoryId] int NULL,
[GitProjectReference] nvarchar(255) NOT NULL,
[Name] nvarchar(255) NOT NULL,
[BaseBranch] nvarchar(255) NULL,
[Origin] int NULL,
[CreatedById] int NOT NULL,
[CreatedOn] datetime2 NOT NULL,
[Deleted] bit NOT NULL,
CONSTRAINT [PK_GitBranch] PRIMARY KEY ([Id]),
CONSTRAINT [FK_GitBranch_ProjectRepository_ProjectRepositoryId] FOREIGN KEY ([ProjectRepositoryId]) REFERENCES [ProjectRepository] ([Id]),
CONSTRAINT [FK_GitBranch_Project_ProjectId] FOREIGN KEY ([ProjectId]) REFERENCES [Project] ([Id]),
CONSTRAINT [FK_GitBranch_User_CreatedById] FOREIGN KEY ([CreatedById]) REFERENCES [User] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [GitWebhookDelivery] (
[Id] int NOT NULL IDENTITY,
[ProjectRepositoryId] int NOT NULL,
[DeliveryId] nvarchar(100) NOT NULL,
[EventName] nvarchar(100) NOT NULL,
[Status] int NOT NULL,
[ReceivedOn] datetime2 NOT NULL,
[ProcessedOn] datetime2 NULL,
[Attempts] int NOT NULL,
[Error] nvarchar(1000) NULL,
[Payload] nvarchar(max) NULL,
CONSTRAINT [PK_GitWebhookDelivery] PRIMARY KEY ([Id]),
CONSTRAINT [FK_GitWebhookDelivery_ProjectRepository_ProjectRepositoryId] FOREIGN KEY ([ProjectRepositoryId]) REFERENCES [ProjectRepository] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [Backlog] (
[Id] int NOT NULL IDENTITY,
[Code] uniqueidentifier NOT NULL,
[Title] nvarchar(500) NOT NULL,
[Description] nvarchar(max) NULL,
[RootCauseAnalysis] nvarchar(max) NULL,
[ExternalNotes] nvarchar(max) NULL,
[EnvironmentJson] nvarchar(max) NULL,
[ParentId] int NULL,
[TaskTypeId] int NOT NULL,
[SeverityId] int NOT NULL,
[DueDate] date NULL,
[PlannedStartDate] date NULL,
[ProjectId] int NOT NULL,
[ModuleId] int NULL,
[SubModuleId] int NULL,
[ReleaseId] int NULL,
[ReporterId] int NULL,
[AssigneeId] int NULL,
[TesterId] int NULL,
[ReOpenCount] int NOT NULL,
[SubTaskCount] int NOT NULL,
[AttachmentCount] int NULL,
[CommentCount] int NULL,
[StatusId] int NOT NULL,
[ResolutionDetails] nvarchar(max) NULL,
[MergeRequestId] int NULL,
[MergeRequestRepositoryId] int NULL,
[SourceId] int NULL,
[SourceWikiDocumentId] int NULL,
[CreatedById] int NOT NULL,
[CreatedOn] datetime2 NOT NULL,
[ModifiedById] int NULL,
[ModifiedOn] datetime2 NULL,
[Deleted] bit NOT NULL,
CONSTRAINT [PK_Backlog] PRIMARY KEY ([Id]),
CONSTRAINT [FK_Backlog_Backlog_ParentId] FOREIGN KEY ([ParentId]) REFERENCES [Backlog] ([Id]),
CONSTRAINT [FK_Backlog_Module_ModuleId] FOREIGN KEY ([ModuleId]) REFERENCES [Module] ([Id]),
CONSTRAINT [FK_Backlog_ProjectRepository_MergeRequestRepositoryId] FOREIGN KEY ([MergeRequestRepositoryId]) REFERENCES [ProjectRepository] ([Id]),
CONSTRAINT [FK_Backlog_Project_ProjectId] FOREIGN KEY ([ProjectId]) REFERENCES [Project] ([Id]),
CONSTRAINT [FK_Backlog_Release_ReleaseId] FOREIGN KEY ([ReleaseId]) REFERENCES [Release] ([Id]),
CONSTRAINT [FK_Backlog_Reporter_ReporterId] FOREIGN KEY ([ReporterId]) REFERENCES [Reporter] ([Id]),
CONSTRAINT [FK_Backlog_Severity_SeverityId] FOREIGN KEY ([SeverityId]) REFERENCES [Severity] ([Id]),
CONSTRAINT [FK_Backlog_Status_StatusId] FOREIGN KEY ([StatusId]) REFERENCES [Status] ([Id]),
CONSTRAINT [FK_Backlog_SubModule_SubModuleId] FOREIGN KEY ([SubModuleId]) REFERENCES [SubModule] ([Id]),
CONSTRAINT [FK_Backlog_TaskType_TaskTypeId] FOREIGN KEY ([TaskTypeId]) REFERENCES [TaskType] ([Id]),
CONSTRAINT [FK_Backlog_User_AssigneeId] FOREIGN KEY ([AssigneeId]) REFERENCES [User] ([Id]),
CONSTRAINT [FK_Backlog_User_CreatedById] FOREIGN KEY ([CreatedById]) REFERENCES [User] ([Id]),
CONSTRAINT [FK_Backlog_User_ModifiedById] FOREIGN KEY ([ModifiedById]) REFERENCES [User] ([Id]),
CONSTRAINT [FK_Backlog_User_TesterId] FOREIGN KEY ([TesterId]) REFERENCES [User] ([Id]),
CONSTRAINT [FK_Backlog_WikiDocument_SourceWikiDocumentId] FOREIGN KEY ([SourceWikiDocumentId]) REFERENCES [WikiDocument] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [WikiDocumentVersion] (
[Id] int NOT NULL IDENTITY,
[WikiDocumentId] int NOT NULL,
[Title] nvarchar(250) NOT NULL,
[ContentHtml] nvarchar(max) NOT NULL,
[CreatedOn] datetime2 NOT NULL,
[ModifiedById] int NOT NULL,
[Note] nvarchar(max) NULL,
CONSTRAINT [PK_WikiDocumentVersion] PRIMARY KEY ([Id]),
CONSTRAINT [FK_WikiDocumentVersion_User_ModifiedById] FOREIGN KEY ([ModifiedById]) REFERENCES [User] ([Id]),
CONSTRAINT [FK_WikiDocumentVersion_WikiDocument_WikiDocumentId] FOREIGN KEY ([WikiDocumentId]) REFERENCES [WikiDocument] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [BacklogComment] (
[Id] int NOT NULL IDENTITY,
[BacklogId] int NOT NULL,
[Comment] nvarchar(max) NOT NULL,
[CreatedById] int NOT NULL,
[SystemComment] bit NOT NULL,
[PostToIssue] bit NOT NULL,
[FieldName] nvarchar(100) NULL,
[OldValue] nvarchar(max) NULL,
[NewValue] nvarchar(max) NULL,
[CreatedOn] datetime2 NOT NULL,
[ModifiedById] int NULL,
[ModifiedOn] datetime2 NULL,
CONSTRAINT [PK_BacklogComment] PRIMARY KEY ([Id]),
CONSTRAINT [FK_BacklogComment_Backlog_BacklogId] FOREIGN KEY ([BacklogId]) REFERENCES [Backlog] ([Id]),
CONSTRAINT [FK_BacklogComment_User_CreatedById] FOREIGN KEY ([CreatedById]) REFERENCES [User] ([Id]),
CONSTRAINT [FK_BacklogComment_User_ModifiedById] FOREIGN KEY ([ModifiedById]) REFERENCES [User] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [BacklogCustomFieldValue] (
[Id] int NOT NULL IDENTITY,
[BacklogId] int NOT NULL,
[CustomFieldId] int NOT NULL,
[Value] nvarchar(max) NULL,
CONSTRAINT [PK_BacklogCustomFieldValue] PRIMARY KEY ([Id]),
CONSTRAINT [FK_BacklogCustomFieldValue_Backlog_BacklogId] FOREIGN KEY ([BacklogId]) REFERENCES [Backlog] ([Id]),
CONSTRAINT [FK_BacklogCustomFieldValue_CustomField_CustomFieldId] FOREIGN KEY ([CustomFieldId]) REFERENCES [CustomField] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [BacklogDocument] (
[Id] int NOT NULL IDENTITY,
[BacklogId] int NOT NULL,
[DocumentId] int NOT NULL,
[CreatedById] int NOT NULL,
[CreatedOn] datetime2 NOT NULL,
CONSTRAINT [PK_BacklogDocument] PRIMARY KEY ([Id]),
CONSTRAINT [FK_BacklogDocument_Backlog_BacklogId] FOREIGN KEY ([BacklogId]) REFERENCES [Backlog] ([Id]),
CONSTRAINT [FK_BacklogDocument_Document_DocumentId] FOREIGN KEY ([DocumentId]) REFERENCES [Document] ([Id]),
CONSTRAINT [FK_BacklogDocument_User_CreatedById] FOREIGN KEY ([CreatedById]) REFERENCES [User] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [BacklogStatusLog] (
[Id] int NOT NULL IDENTITY,
[BacklogId] int NOT NULL,
[StatusId] int NOT NULL,
[CreatedById] int NOT NULL,
[CreatedOn] datetime2 NOT NULL,
CONSTRAINT [PK_BacklogStatusLog] PRIMARY KEY ([Id]),
CONSTRAINT [FK_BacklogStatusLog_Backlog_BacklogId] FOREIGN KEY ([BacklogId]) REFERENCES [Backlog] ([Id]),
CONSTRAINT [FK_BacklogStatusLog_Status_StatusId] FOREIGN KEY ([StatusId]) REFERENCES [Status] ([Id]),
CONSTRAINT [FK_BacklogStatusLog_User_CreatedById] FOREIGN KEY ([CreatedById]) REFERENCES [User] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [BacklogTag] (
[Id] int NOT NULL IDENTITY,
[BacklogId] int NOT NULL,
[TagId] int NOT NULL,
CONSTRAINT [PK_BacklogTag] PRIMARY KEY ([Id]),
CONSTRAINT [FK_BacklogTag_Backlog_BacklogId] FOREIGN KEY ([BacklogId]) REFERENCES [Backlog] ([Id]),
CONSTRAINT [FK_BacklogTag_Tag_TagId] FOREIGN KEY ([TagId]) REFERENCES [Tag] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [ExternalIssueLink] (
[Id] int NOT NULL IDENTITY,
[BacklogId] int NOT NULL,
[ProjectRepositoryId] int NOT NULL,
[ExternalId] nvarchar(64) NOT NULL,
[Number] int NOT NULL,
[Url] nvarchar(500) NULL,
[RemoteState] nvarchar(20) NULL,
[Snapshot] nvarchar(max) NULL,
[SyncEnabled] bit NOT NULL,
[CreatedOn] datetime2 NOT NULL,
[LastSyncedOn] datetime2 NULL,
[RemoteUpdatedOn] datetime2 NULL,
[LastError] nvarchar(1000) NULL,
CONSTRAINT [PK_ExternalIssueLink] PRIMARY KEY ([Id]),
CONSTRAINT [FK_ExternalIssueLink_Backlog_BacklogId] FOREIGN KEY ([BacklogId]) REFERENCES [Backlog] ([Id]),
CONSTRAINT [FK_ExternalIssueLink_ProjectRepository_ProjectRepositoryId] FOREIGN KEY ([ProjectRepositoryId]) REFERENCES [ProjectRepository] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [GitBranchTask] (
[Id] int NOT NULL IDENTITY,
[GitBranchId] int NOT NULL,
[BacklogId] int NOT NULL,
[LinkedById] int NOT NULL,
[LinkedOn] datetime2 NOT NULL,
CONSTRAINT [PK_GitBranchTask] PRIMARY KEY ([Id]),
CONSTRAINT [FK_GitBranchTask_Backlog_BacklogId] FOREIGN KEY ([BacklogId]) REFERENCES [Backlog] ([Id]),
CONSTRAINT [FK_GitBranchTask_GitBranch_GitBranchId] FOREIGN KEY ([GitBranchId]) REFERENCES [GitBranch] ([Id]),
CONSTRAINT [FK_GitBranchTask_User_LinkedById] FOREIGN KEY ([LinkedById]) REFERENCES [User] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE TABLE [ExternalCommentLink] (
[Id] int NOT NULL IDENTITY,
[ExternalIssueLinkId] int NOT NULL,
[BacklogCommentId] int NOT NULL,
[ExternalCommentId] nvarchar(64) NOT NULL,
[Inbound] bit NOT NULL,
[ContentHash] nvarchar(64) NULL,
[LastSyncedOn] datetime2 NOT NULL,
CONSTRAINT [PK_ExternalCommentLink] PRIMARY KEY ([Id]),
CONSTRAINT [FK_ExternalCommentLink_BacklogComment_BacklogCommentId] FOREIGN KEY ([BacklogCommentId]) REFERENCES [BacklogComment] ([Id]),
CONSTRAINT [FK_ExternalCommentLink_ExternalIssueLink_ExternalIssueLinkId] FOREIGN KEY ([ExternalIssueLinkId]) REFERENCES [ExternalIssueLink] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Announcement_Active_Deleted] ON [Announcement] ([Active], [Deleted]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE UNIQUE INDEX [IX_AnnouncementAcknowledgement_AnnouncementId_UserId] ON [AnnouncementAcknowledgement] ([AnnouncementId], [UserId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_AnnouncementAcknowledgement_UserId] ON [AnnouncementAcknowledgement] ([UserId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_AnnouncementRole_AnnouncementId_UserRoleId] ON [AnnouncementRole] ([AnnouncementId], [UserRoleId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_AnnouncementRole_UserRoleId] ON [AnnouncementRole] ([UserRoleId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_AuditLog_EntityName_EntityId] ON [AuditLog] ([EntityName], [EntityId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Backlog_AssigneeId] ON [Backlog] ([AssigneeId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Backlog_CreatedById] ON [Backlog] ([CreatedById]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Backlog_MergeRequestRepositoryId] ON [Backlog] ([MergeRequestRepositoryId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Backlog_ModifiedById] ON [Backlog] ([ModifiedById]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Backlog_ModuleId] ON [Backlog] ([ModuleId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Backlog_ParentId] ON [Backlog] ([ParentId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Backlog_ProjectId] ON [Backlog] ([ProjectId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Backlog_ReleaseId] ON [Backlog] ([ReleaseId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Backlog_ReporterId] ON [Backlog] ([ReporterId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Backlog_SeverityId] ON [Backlog] ([SeverityId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Backlog_SourceWikiDocumentId] ON [Backlog] ([SourceWikiDocumentId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Backlog_StatusId] ON [Backlog] ([StatusId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Backlog_SubModuleId] ON [Backlog] ([SubModuleId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Backlog_TaskTypeId] ON [Backlog] ([TaskTypeId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Backlog_TesterId] ON [Backlog] ([TesterId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_BacklogComment_BacklogId] ON [BacklogComment] ([BacklogId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_BacklogComment_CreatedById] ON [BacklogComment] ([CreatedById]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_BacklogComment_ModifiedById] ON [BacklogComment] ([ModifiedById]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_BacklogCustomFieldValue_BacklogId] ON [BacklogCustomFieldValue] ([BacklogId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_BacklogCustomFieldValue_CustomFieldId] ON [BacklogCustomFieldValue] ([CustomFieldId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_BacklogDocument_BacklogId] ON [BacklogDocument] ([BacklogId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_BacklogDocument_CreatedById] ON [BacklogDocument] ([CreatedById]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_BacklogDocument_DocumentId] ON [BacklogDocument] ([DocumentId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_BacklogStatusLog_BacklogId] ON [BacklogStatusLog] ([BacklogId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_BacklogStatusLog_CreatedById] ON [BacklogStatusLog] ([CreatedById]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_BacklogStatusLog_StatusId] ON [BacklogStatusLog] ([StatusId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_BacklogTag_BacklogId_TagId] ON [BacklogTag] ([BacklogId], [TagId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_BacklogTag_TagId] ON [BacklogTag] ([TagId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_CustomField_ProjectId] ON [CustomField] ([ProjectId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_EmailTemplate_EmailAccountId] ON [EmailTemplate] ([EmailAccountId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_ExternalCommentLink_BacklogCommentId] ON [ExternalCommentLink] ([BacklogCommentId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE UNIQUE INDEX [IX_ExternalCommentLink_ExternalIssueLinkId_ExternalCommentId] ON [ExternalCommentLink] ([ExternalIssueLinkId], [ExternalCommentId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_ExternalIssueLink_BacklogId] ON [ExternalIssueLink] ([BacklogId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE UNIQUE INDEX [IX_ExternalIssueLink_ProjectRepositoryId_Number] ON [ExternalIssueLink] ([ProjectRepositoryId], [Number]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_GitBranch_CreatedById] ON [GitBranch] ([CreatedById]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_GitBranch_GitProjectReference_Name] ON [GitBranch] ([GitProjectReference], [Name]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_GitBranch_ProjectId] ON [GitBranch] ([ProjectId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_GitBranch_ProjectRepositoryId] ON [GitBranch] ([ProjectRepositoryId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_GitBranchTask_BacklogId] ON [GitBranchTask] ([BacklogId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE UNIQUE INDEX [IX_GitBranchTask_GitBranchId_BacklogId] ON [GitBranchTask] ([GitBranchId], [BacklogId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_GitBranchTask_LinkedById] ON [GitBranchTask] ([LinkedById]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE UNIQUE INDEX [IX_GitWebhookDelivery_ProjectRepositoryId_DeliveryId] ON [GitWebhookDelivery] ([ProjectRepositoryId], [DeliveryId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_GitWebhookDelivery_ReceivedOn] ON [GitWebhookDelivery] ([ReceivedOn]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_LocaleResource_LanguageId] ON [LocaleResource] ([LanguageId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Module_ProjectId] ON [Module] ([ProjectId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Project_ClientId] ON [Project] ([ClientId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Project_CodeReviewerId] ON [Project] ([CodeReviewerId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Project_ProjectManagerId] ON [Project] ([ProjectManagerId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Project_TeamLeadId] ON [Project] ([TeamLeadId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_ProjectNotificationChannel_NotificationChannelId] ON [ProjectNotificationChannel] ([NotificationChannelId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE UNIQUE INDEX [IX_ProjectNotificationChannel_ProjectId_NotificationChannelId] ON [ProjectNotificationChannel] ([ProjectId], [NotificationChannelId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_ProjectRepository_GitConnectionId] ON [ProjectRepository] ([GitConnectionId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_ProjectRepository_IssueClosedStatusId] ON [ProjectRepository] ([IssueClosedStatusId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_ProjectRepository_IssueOpenStatusId] ON [ProjectRepository] ([IssueOpenStatusId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_ProjectRepository_IssueSeverityId] ON [ProjectRepository] ([IssueSeverityId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_ProjectRepository_IssueSyncUserId] ON [ProjectRepository] ([IssueSyncUserId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_ProjectRepository_IssueTaskTypeId] ON [ProjectRepository] ([IssueTaskTypeId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_ProjectRepository_ProjectId_GitConnectionId_RepoRef] ON [ProjectRepository] ([ProjectId], [GitConnectionId], [RepoRef]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE UNIQUE INDEX [IX_ProjectRepository_WebhookKey] ON [ProjectRepository] ([WebhookKey]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Release_ProjectId] ON [Release] ([ProjectId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_ReleaseProject_ProjectId] ON [ReleaseProject] ([ProjectId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE UNIQUE INDEX [IX_ReleaseProject_ReleaseId_ProjectId] ON [ReleaseProject] ([ReleaseId], [ProjectId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Reporter_ProjectId] ON [Reporter] ([ProjectId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_Status_ProjectId] ON [Status] ([ProjectId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_StatusDurationMetric_FromStatusId] ON [StatusDurationMetric] ([FromStatusId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_StatusDurationMetric_ProjectId] ON [StatusDurationMetric] ([ProjectId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_StatusDurationMetric_ToStatusId] ON [StatusDurationMetric] ([ToStatusId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_SubModule_ModuleId] ON [SubModule] ([ModuleId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_SubModule_OwnerId] ON [SubModule] ([OwnerId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_User_AddressId] ON [User] ([AddressId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_User_LanguageId] ON [User] ([LanguageId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE UNIQUE INDEX [IX_UserGitAccount_GitConnectionId_ExternalUserId] ON [UserGitAccount] ([GitConnectionId], [ExternalUserId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE UNIQUE INDEX [IX_UserGitAccount_UserId_GitConnectionId] ON [UserGitAccount] ([UserId], [GitConnectionId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_UserNotification_UserId_DedupeKey] ON [UserNotification] ([UserId], [DedupeKey]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_UserNotification_UserId_IsRead_CreatedOnUtc] ON [UserNotification] ([UserId], [IsRead], [CreatedOnUtc]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_UserPassword_UserId] ON [UserPassword] ([UserId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_UserProjectMap_ProjectId] ON [UserProjectMap] ([ProjectId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_UserProjectMap_UserId] ON [UserProjectMap] ([UserId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_UserRoleMap_UserRoleId] ON [UserRoleMap] ([UserRoleId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_UserRolePermissionMap_UserRoleId] ON [UserRolePermissionMap] ([UserRoleId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_WikiCategory_ParentCategoryId] ON [WikiCategory] ([ParentCategoryId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_WikiCategory_ProjectId] ON [WikiCategory] ([ProjectId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_WikiDocument_CategoryId] ON [WikiDocument] ([CategoryId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_WikiDocument_CreatedById] ON [WikiDocument] ([CreatedById]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_WikiDocument_ModifiedById] ON [WikiDocument] ([ModifiedById]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_WikiDocument_ModuleId] ON [WikiDocument] ([ModuleId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_WikiDocument_SubModuleId] ON [WikiDocument] ([SubModuleId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_WikiDocumentVersion_ModifiedById] ON [WikiDocumentVersion] ([ModifiedById]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
CREATE INDEX [IX_WikiDocumentVersion_WikiDocumentId] ON [WikiDocumentVersion] ([WikiDocumentId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261020195900_InitialCreate'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20261020195900_InitialCreate', N'10.0.13');
END;
COMMIT;
GO
BEGIN TRANSACTION;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261026093041_AddWikiImage'
)
BEGIN
CREATE TABLE [WikiImage] (
[Id] int NOT NULL IDENTITY,
[DocumentId] int NOT NULL,
[ProjectId] int NOT NULL,
[WikiDocumentId] int NOT NULL,
[UploadedById] int NOT NULL,
[CreatedOn] datetime2 NOT NULL,
CONSTRAINT [PK_WikiImage] PRIMARY KEY ([Id]),
CONSTRAINT [FK_WikiImage_Document_DocumentId] FOREIGN KEY ([DocumentId]) REFERENCES [Document] ([Id]),
CONSTRAINT [FK_WikiImage_Project_ProjectId] FOREIGN KEY ([ProjectId]) REFERENCES [Project] ([Id]),
CONSTRAINT [FK_WikiImage_User_UploadedById] FOREIGN KEY ([UploadedById]) REFERENCES [User] ([Id]),
CONSTRAINT [FK_WikiImage_WikiDocument_WikiDocumentId] FOREIGN KEY ([WikiDocumentId]) REFERENCES [WikiDocument] ([Id])
);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261026093041_AddWikiImage'
)
BEGIN
CREATE UNIQUE INDEX [IX_WikiImage_DocumentId] ON [WikiImage] ([DocumentId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261026093041_AddWikiImage'
)
BEGIN
CREATE INDEX [IX_WikiImage_ProjectId] ON [WikiImage] ([ProjectId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261026093041_AddWikiImage'
)
BEGIN
CREATE INDEX [IX_WikiImage_UploadedById] ON [WikiImage] ([UploadedById]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261026093041_AddWikiImage'
)
BEGIN
CREATE INDEX [IX_WikiImage_WikiDocumentId] ON [WikiImage] ([WikiDocumentId]);
END;
IF NOT EXISTS (
SELECT * FROM [__EFMigrationsHistory]
WHERE [MigrationId] = N'20261026093041_AddWikiImage'
)
BEGIN
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
VALUES (N'20261026093041_AddWikiImage', N'10.0.13');
END;
COMMIT;
GO