sciagent code + Gitea Actions CI/CD
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
-- ============================================================================
|
||||
-- DYD — Create Production Database + Dedicated Login
|
||||
-- Run on SQL Server as sysadmin (sa)
|
||||
-- ============================================================================
|
||||
|
||||
USE [master];
|
||||
GO
|
||||
|
||||
-- 1. Create database
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.databases WHERE name = N'DYD_Prod')
|
||||
BEGIN
|
||||
CREATE DATABASE [DYD_Prod]
|
||||
COLLATE Vietnamese_CI_AS;
|
||||
|
||||
-- Optional: set recovery model (Simple cho dev/staging, Full cho prod backup log)
|
||||
ALTER DATABASE [DYD_Prod] SET RECOVERY SIMPLE;
|
||||
PRINT 'Database [DYD_Prod] created.';
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
PRINT 'Database [DYD_Prod] already exists. Skipping.';
|
||||
END
|
||||
GO
|
||||
|
||||
-- 2. Create dedicated login for the app (KHÔNG dùng sa trong production)
|
||||
-- TODO: Thay '<APP_DB_PASSWORD>' bằng password mạnh (32+ char, random)
|
||||
-- Generate: [System.Web.Security.Membership]::GeneratePassword(32, 8)
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.sql_logins WHERE name = N'dyd_app')
|
||||
BEGIN
|
||||
CREATE LOGIN [dyd_app] WITH
|
||||
PASSWORD = N'<APP_DB_PASSWORD>',
|
||||
DEFAULT_DATABASE = [DYD_Prod],
|
||||
CHECK_EXPIRATION = OFF,
|
||||
CHECK_POLICY = ON;
|
||||
PRINT 'Login [dyd_app] created.';
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
PRINT 'Login [dyd_app] already exists. Skipping.';
|
||||
END
|
||||
GO
|
||||
|
||||
-- 3. Map login to database user + assign roles
|
||||
USE [DYD_Prod];
|
||||
GO
|
||||
|
||||
IF NOT EXISTS (SELECT 1 FROM sys.database_principals WHERE name = N'dyd_app')
|
||||
BEGIN
|
||||
CREATE USER [dyd_app] FOR LOGIN [dyd_app];
|
||||
PRINT 'User [dyd_app] created in [DYD_Prod].';
|
||||
END
|
||||
GO
|
||||
|
||||
-- Grant roles:
|
||||
-- db_datareader — SELECT
|
||||
-- db_datawriter — INSERT, UPDATE, DELETE
|
||||
-- db_ddladmin — CREATE/ALTER/DROP (cho EF migrations)
|
||||
ALTER ROLE db_datareader ADD MEMBER [dyd_app];
|
||||
ALTER ROLE db_datawriter ADD MEMBER [dyd_app];
|
||||
ALTER ROLE db_ddladmin ADD MEMBER [dyd_app];
|
||||
PRINT 'Roles granted to [dyd_app].';
|
||||
GO
|
||||
|
||||
-- 4. Verify
|
||||
SELECT
|
||||
DB_NAME() AS Database_Name,
|
||||
USER_NAME() AS Current_User,
|
||||
@@VERSION AS Server_Version;
|
||||
GO
|
||||
|
||||
PRINT '';
|
||||
PRINT '==========================================';
|
||||
PRINT ' DONE — DYD_Prod ready.';
|
||||
PRINT '==========================================';
|
||||
PRINT '';
|
||||
PRINT 'Connection string cho .NET (điền password đã tạo):';
|
||||
PRINT 'Server=103.124.94.58,1433;Database=DYD_Prod;User Id=dyd_app;Password=<APP_DB_PASSWORD>;TrustServerCertificate=True;MultipleActiveResultSets=True;';
|
||||
GO
|
||||
@@ -0,0 +1,653 @@
|
||||
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'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [AppraisalTeams] (
|
||||
[Id] uniqueidentifier NOT NULL,
|
||||
[Name] nvarchar(200) NOT NULL,
|
||||
[Description] nvarchar(max) NULL,
|
||||
[IsActive] bit NOT NULL,
|
||||
[CreatedAt] datetime2 NOT NULL,
|
||||
[UpdatedAt] datetime2 NULL,
|
||||
[CreatedBy] nvarchar(max) NULL,
|
||||
[UpdatedBy] nvarchar(max) NULL,
|
||||
[IsDeleted] bit NOT NULL,
|
||||
[DeletedAt] datetime2 NULL,
|
||||
[DeletedBy] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_AppraisalTeams] PRIMARY KEY ([Id])
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [AspNetRoles] (
|
||||
[Id] nvarchar(450) NOT NULL,
|
||||
[Name] nvarchar(256) NULL,
|
||||
[NormalizedName] nvarchar(256) NULL,
|
||||
[ConcurrencyStamp] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_AspNetRoles] PRIMARY KEY ([Id])
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [AspNetUsers] (
|
||||
[Id] nvarchar(450) NOT NULL,
|
||||
[FullName] nvarchar(max) NOT NULL,
|
||||
[IsEnabled] bit NOT NULL,
|
||||
[CreatedAt] datetime2 NOT NULL,
|
||||
[LastLoginAt] datetime2 NULL,
|
||||
[RefreshToken] nvarchar(max) NULL,
|
||||
[RefreshTokenExpiresAt] datetime2 NULL,
|
||||
[UnitId] uniqueidentifier NULL,
|
||||
[UserName] nvarchar(256) NULL,
|
||||
[NormalizedUserName] nvarchar(256) NULL,
|
||||
[Email] nvarchar(256) NULL,
|
||||
[NormalizedEmail] nvarchar(256) NULL,
|
||||
[EmailConfirmed] bit NOT NULL,
|
||||
[PasswordHash] nvarchar(max) NULL,
|
||||
[SecurityStamp] nvarchar(max) NULL,
|
||||
[ConcurrencyStamp] nvarchar(max) NULL,
|
||||
[PhoneNumber] nvarchar(max) NULL,
|
||||
[PhoneNumberConfirmed] bit NOT NULL,
|
||||
[TwoFactorEnabled] bit NOT NULL,
|
||||
[LockoutEnd] datetimeoffset NULL,
|
||||
[LockoutEnabled] bit NOT NULL,
|
||||
[AccessFailedCount] int NOT NULL,
|
||||
CONSTRAINT [PK_AspNetUsers] PRIMARY KEY ([Id])
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [AuditLogs] (
|
||||
[Id] uniqueidentifier NOT NULL,
|
||||
[EntityName] nvarchar(100) NOT NULL,
|
||||
[EntityId] nvarchar(100) NOT NULL,
|
||||
[Action] nvarchar(50) NOT NULL,
|
||||
[ActorUserId] nvarchar(max) NULL,
|
||||
[ActorDisplayName] nvarchar(max) NULL,
|
||||
[PreviousValue] nvarchar(max) NULL,
|
||||
[NewValue] nvarchar(max) NULL,
|
||||
[Metadata] nvarchar(max) NULL,
|
||||
[IpAddress] nvarchar(max) NULL,
|
||||
[UserAgent] nvarchar(max) NULL,
|
||||
[CreatedAt] datetime2 NOT NULL,
|
||||
[UpdatedAt] datetime2 NULL,
|
||||
[CreatedBy] nvarchar(max) NULL,
|
||||
[UpdatedBy] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_AuditLogs] PRIMARY KEY ([Id])
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [Notifications] (
|
||||
[Id] uniqueidentifier NOT NULL,
|
||||
[RecipientUserId] nvarchar(450) NOT NULL,
|
||||
[Title] nvarchar(200) NOT NULL,
|
||||
[Message] nvarchar(max) NOT NULL,
|
||||
[Type] nvarchar(20) NOT NULL,
|
||||
[Link] nvarchar(max) NULL,
|
||||
[IsRead] bit NOT NULL,
|
||||
[ReadAt] datetime2 NULL,
|
||||
[CreatedAt] datetime2 NOT NULL,
|
||||
[UpdatedAt] datetime2 NULL,
|
||||
[CreatedBy] nvarchar(max) NULL,
|
||||
[UpdatedBy] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_Notifications] PRIMARY KEY ([Id])
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [SystemSettings] (
|
||||
[Id] uniqueidentifier NOT NULL,
|
||||
[Key] nvarchar(100) NOT NULL,
|
||||
[Value] nvarchar(max) NOT NULL,
|
||||
[Description] nvarchar(max) NULL,
|
||||
[Category] nvarchar(50) NOT NULL,
|
||||
[IsSecret] bit NOT NULL,
|
||||
[CreatedAt] datetime2 NOT NULL,
|
||||
[UpdatedAt] datetime2 NULL,
|
||||
[CreatedBy] nvarchar(max) NULL,
|
||||
[UpdatedBy] nvarchar(max) NULL,
|
||||
[IsDeleted] bit NOT NULL,
|
||||
[DeletedAt] datetime2 NULL,
|
||||
[DeletedBy] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_SystemSettings] PRIMARY KEY ([Id])
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [Units] (
|
||||
[Id] uniqueidentifier NOT NULL,
|
||||
[Name] nvarchar(200) NOT NULL,
|
||||
[Code] nvarchar(50) NOT NULL,
|
||||
[Description] nvarchar(max) NULL,
|
||||
[ParentUnitId] uniqueidentifier NULL,
|
||||
[CreatedAt] datetime2 NOT NULL,
|
||||
[UpdatedAt] datetime2 NULL,
|
||||
[CreatedBy] nvarchar(max) NULL,
|
||||
[UpdatedBy] nvarchar(max) NULL,
|
||||
[IsDeleted] bit NOT NULL,
|
||||
[DeletedAt] datetime2 NULL,
|
||||
[DeletedBy] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_Units] PRIMARY KEY ([Id]),
|
||||
CONSTRAINT [FK_Units_Units_ParentUnitId] FOREIGN KEY ([ParentUnitId]) REFERENCES [Units] ([Id]) ON DELETE NO ACTION
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [AppraisalTeamMembers] (
|
||||
[Id] uniqueidentifier NOT NULL,
|
||||
[AppraisalTeamId] uniqueidentifier NOT NULL,
|
||||
[UserId] nvarchar(450) NOT NULL,
|
||||
[Role] nvarchar(50) NOT NULL,
|
||||
[IsChair] bit NOT NULL,
|
||||
[CreatedAt] datetime2 NOT NULL,
|
||||
[UpdatedAt] datetime2 NULL,
|
||||
[CreatedBy] nvarchar(max) NULL,
|
||||
[UpdatedBy] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_AppraisalTeamMembers] PRIMARY KEY ([Id]),
|
||||
CONSTRAINT [FK_AppraisalTeamMembers_AppraisalTeams_AppraisalTeamId] FOREIGN KEY ([AppraisalTeamId]) REFERENCES [AppraisalTeams] ([Id]) ON DELETE CASCADE
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [AspNetRoleClaims] (
|
||||
[Id] int NOT NULL IDENTITY,
|
||||
[RoleId] nvarchar(450) NOT NULL,
|
||||
[ClaimType] nvarchar(max) NULL,
|
||||
[ClaimValue] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_AspNetRoleClaims] PRIMARY KEY ([Id]),
|
||||
CONSTRAINT [FK_AspNetRoleClaims_AspNetRoles_RoleId] FOREIGN KEY ([RoleId]) REFERENCES [AspNetRoles] ([Id]) ON DELETE CASCADE
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [AspNetUserClaims] (
|
||||
[Id] int NOT NULL IDENTITY,
|
||||
[UserId] nvarchar(450) NOT NULL,
|
||||
[ClaimType] nvarchar(max) NULL,
|
||||
[ClaimValue] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_AspNetUserClaims] PRIMARY KEY ([Id]),
|
||||
CONSTRAINT [FK_AspNetUserClaims_AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [AspNetUsers] ([Id]) ON DELETE CASCADE
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [AspNetUserLogins] (
|
||||
[LoginProvider] nvarchar(450) NOT NULL,
|
||||
[ProviderKey] nvarchar(450) NOT NULL,
|
||||
[ProviderDisplayName] nvarchar(max) NULL,
|
||||
[UserId] nvarchar(450) NOT NULL,
|
||||
CONSTRAINT [PK_AspNetUserLogins] PRIMARY KEY ([LoginProvider], [ProviderKey]),
|
||||
CONSTRAINT [FK_AspNetUserLogins_AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [AspNetUsers] ([Id]) ON DELETE CASCADE
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [AspNetUserRoles] (
|
||||
[UserId] nvarchar(450) NOT NULL,
|
||||
[RoleId] nvarchar(450) NOT NULL,
|
||||
CONSTRAINT [PK_AspNetUserRoles] PRIMARY KEY ([UserId], [RoleId]),
|
||||
CONSTRAINT [FK_AspNetUserRoles_AspNetRoles_RoleId] FOREIGN KEY ([RoleId]) REFERENCES [AspNetRoles] ([Id]) ON DELETE CASCADE,
|
||||
CONSTRAINT [FK_AspNetUserRoles_AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [AspNetUsers] ([Id]) ON DELETE CASCADE
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [AspNetUserTokens] (
|
||||
[UserId] nvarchar(450) NOT NULL,
|
||||
[LoginProvider] nvarchar(450) NOT NULL,
|
||||
[Name] nvarchar(450) NOT NULL,
|
||||
[Value] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_AspNetUserTokens] PRIMARY KEY ([UserId], [LoginProvider], [Name]),
|
||||
CONSTRAINT [FK_AspNetUserTokens_AspNetUsers_UserId] FOREIGN KEY ([UserId]) REFERENCES [AspNetUsers] ([Id]) ON DELETE CASCADE
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [Authors] (
|
||||
[Id] uniqueidentifier NOT NULL,
|
||||
[FullName] nvarchar(200) NOT NULL,
|
||||
[Email] nvarchar(200) NOT NULL,
|
||||
[PhoneNumber] nvarchar(max) NULL,
|
||||
[Position] nvarchar(max) NULL,
|
||||
[AcademicTitle] nvarchar(max) NULL,
|
||||
[UnitId] uniqueidentifier NULL,
|
||||
[UserId] nvarchar(max) NULL,
|
||||
[CreatedAt] datetime2 NOT NULL,
|
||||
[UpdatedAt] datetime2 NULL,
|
||||
[CreatedBy] nvarchar(max) NULL,
|
||||
[UpdatedBy] nvarchar(max) NULL,
|
||||
[IsDeleted] bit NOT NULL,
|
||||
[DeletedAt] datetime2 NULL,
|
||||
[DeletedBy] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_Authors] PRIMARY KEY ([Id]),
|
||||
CONSTRAINT [FK_Authors_Units_UnitId] FOREIGN KEY ([UnitId]) REFERENCES [Units] ([Id]) ON DELETE SET NULL
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [Initiatives] (
|
||||
[Id] uniqueidentifier NOT NULL,
|
||||
[Code] nvarchar(50) NOT NULL,
|
||||
[Title] nvarchar(500) NOT NULL,
|
||||
[Description] nvarchar(max) NOT NULL,
|
||||
[ShortSummary] nvarchar(max) NULL,
|
||||
[Objectives] nvarchar(max) NULL,
|
||||
[ScopeOfApplication] nvarchar(max) NULL,
|
||||
[ExpectedOutcomes] nvarchar(max) NULL,
|
||||
[ActualOutcomes] nvarchar(max) NULL,
|
||||
[EstimatedBudget] decimal(18,2) NULL,
|
||||
[ActualBudget] decimal(18,2) NULL,
|
||||
[StartDate] datetime2 NULL,
|
||||
[EndDate] datetime2 NULL,
|
||||
[SubmissionDate] datetime2 NULL,
|
||||
[ApprovalDate] datetime2 NULL,
|
||||
[Status] int NOT NULL,
|
||||
[Category] int NOT NULL,
|
||||
[Group] int NOT NULL,
|
||||
[OwningUnitId] uniqueidentifier NOT NULL,
|
||||
[SubmittedByUserId] nvarchar(max) NOT NULL,
|
||||
[CreatedAt] datetime2 NOT NULL,
|
||||
[UpdatedAt] datetime2 NULL,
|
||||
[CreatedBy] nvarchar(max) NULL,
|
||||
[UpdatedBy] nvarchar(max) NULL,
|
||||
[IsDeleted] bit NOT NULL,
|
||||
[DeletedAt] datetime2 NULL,
|
||||
[DeletedBy] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_Initiatives] PRIMARY KEY ([Id]),
|
||||
CONSTRAINT [FK_Initiatives_Units_OwningUnitId] FOREIGN KEY ([OwningUnitId]) REFERENCES [Units] ([Id]) ON DELETE NO ACTION
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [InitiativeAttachments] (
|
||||
[Id] uniqueidentifier NOT NULL,
|
||||
[InitiativeId] uniqueidentifier NOT NULL,
|
||||
[FileName] nvarchar(260) NOT NULL,
|
||||
[StoragePath] nvarchar(500) NOT NULL,
|
||||
[ContentType] nvarchar(100) NOT NULL,
|
||||
[FileSize] bigint NOT NULL,
|
||||
[Description] nvarchar(max) NULL,
|
||||
[Category] nvarchar(max) NULL,
|
||||
[CreatedAt] datetime2 NOT NULL,
|
||||
[UpdatedAt] datetime2 NULL,
|
||||
[CreatedBy] nvarchar(max) NULL,
|
||||
[UpdatedBy] nvarchar(max) NULL,
|
||||
[IsDeleted] bit NOT NULL,
|
||||
[DeletedAt] datetime2 NULL,
|
||||
[DeletedBy] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_InitiativeAttachments] PRIMARY KEY ([Id]),
|
||||
CONSTRAINT [FK_InitiativeAttachments_Initiatives_InitiativeId] FOREIGN KEY ([InitiativeId]) REFERENCES [Initiatives] ([Id]) ON DELETE CASCADE
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [InitiativeAuthors] (
|
||||
[Id] uniqueidentifier NOT NULL,
|
||||
[InitiativeId] uniqueidentifier NOT NULL,
|
||||
[AuthorId] uniqueidentifier NOT NULL,
|
||||
[ContributionPercentage] decimal(5,2) NOT NULL,
|
||||
[IsLeadAuthor] bit NOT NULL,
|
||||
[ContributionDescription] nvarchar(max) NULL,
|
||||
[CreatedAt] datetime2 NOT NULL,
|
||||
[UpdatedAt] datetime2 NULL,
|
||||
[CreatedBy] nvarchar(max) NULL,
|
||||
[UpdatedBy] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_InitiativeAuthors] PRIMARY KEY ([Id]),
|
||||
CONSTRAINT [FK_InitiativeAuthors_Authors_AuthorId] FOREIGN KEY ([AuthorId]) REFERENCES [Authors] ([Id]) ON DELETE NO ACTION,
|
||||
CONSTRAINT [FK_InitiativeAuthors_Initiatives_InitiativeId] FOREIGN KEY ([InitiativeId]) REFERENCES [Initiatives] ([Id]) ON DELETE CASCADE
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [InitiativeStatusHistories] (
|
||||
[Id] uniqueidentifier NOT NULL,
|
||||
[InitiativeId] uniqueidentifier NOT NULL,
|
||||
[FromStatus] int NOT NULL,
|
||||
[ToStatus] int NOT NULL,
|
||||
[Comment] nvarchar(max) NULL,
|
||||
[ChangedByUserId] nvarchar(max) NOT NULL,
|
||||
[CreatedAt] datetime2 NOT NULL,
|
||||
[UpdatedAt] datetime2 NULL,
|
||||
[CreatedBy] nvarchar(max) NULL,
|
||||
[UpdatedBy] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_InitiativeStatusHistories] PRIMARY KEY ([Id]),
|
||||
CONSTRAINT [FK_InitiativeStatusHistories_Initiatives_InitiativeId] FOREIGN KEY ([InitiativeId]) REFERENCES [Initiatives] ([Id]) ON DELETE CASCADE
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [Reviews] (
|
||||
[Id] uniqueidentifier NOT NULL,
|
||||
[InitiativeId] uniqueidentifier NOT NULL,
|
||||
[ReviewerUserId] nvarchar(max) NOT NULL,
|
||||
[AppraisalTeamId] uniqueidentifier NOT NULL,
|
||||
[Score] decimal(5,2) NULL,
|
||||
[NoveltyScore] decimal(5,2) NULL,
|
||||
[FeasibilityScore] decimal(5,2) NULL,
|
||||
[ImpactScore] decimal(5,2) NULL,
|
||||
[EfficiencyScore] decimal(5,2) NULL,
|
||||
[Decision] int NOT NULL,
|
||||
[Comments] nvarchar(max) NULL,
|
||||
[Strengths] nvarchar(max) NULL,
|
||||
[Weaknesses] nvarchar(max) NULL,
|
||||
[Recommendations] nvarchar(max) NULL,
|
||||
[ReviewedAt] datetime2 NULL,
|
||||
[DueDate] datetime2 NULL,
|
||||
[CreatedAt] datetime2 NOT NULL,
|
||||
[UpdatedAt] datetime2 NULL,
|
||||
[CreatedBy] nvarchar(max) NULL,
|
||||
[UpdatedBy] nvarchar(max) NULL,
|
||||
[IsDeleted] bit NOT NULL,
|
||||
[DeletedAt] datetime2 NULL,
|
||||
[DeletedBy] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_Reviews] PRIMARY KEY ([Id]),
|
||||
CONSTRAINT [FK_Reviews_AppraisalTeams_AppraisalTeamId] FOREIGN KEY ([AppraisalTeamId]) REFERENCES [AppraisalTeams] ([Id]) ON DELETE NO ACTION,
|
||||
CONSTRAINT [FK_Reviews_Initiatives_InitiativeId] FOREIGN KEY ([InitiativeId]) REFERENCES [Initiatives] ([Id]) ON DELETE CASCADE
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE UNIQUE INDEX [IX_AppraisalTeamMembers_AppraisalTeamId_UserId] ON [AppraisalTeamMembers] ([AppraisalTeamId], [UserId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_AspNetRoleClaims_RoleId] ON [AspNetRoleClaims] ([RoleId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
EXEC(N'CREATE UNIQUE INDEX [RoleNameIndex] ON [AspNetRoles] ([NormalizedName]) WHERE [NormalizedName] IS NOT NULL');
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_AspNetUserClaims_UserId] ON [AspNetUserClaims] ([UserId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_AspNetUserLogins_UserId] ON [AspNetUserLogins] ([UserId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_AspNetUserRoles_RoleId] ON [AspNetUserRoles] ([RoleId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [EmailIndex] ON [AspNetUsers] ([NormalizedEmail]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
EXEC(N'CREATE UNIQUE INDEX [UserNameIndex] ON [AspNetUsers] ([NormalizedUserName]) WHERE [NormalizedUserName] IS NOT NULL');
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_AuditLogs_CreatedAt] ON [AuditLogs] ([CreatedAt]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_AuditLogs_EntityName_EntityId] ON [AuditLogs] ([EntityName], [EntityId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_Authors_Email] ON [Authors] ([Email]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_Authors_UnitId] ON [Authors] ([UnitId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_InitiativeAttachments_InitiativeId] ON [InitiativeAttachments] ([InitiativeId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_InitiativeAuthors_AuthorId] ON [InitiativeAuthors] ([AuthorId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE UNIQUE INDEX [IX_InitiativeAuthors_InitiativeId_AuthorId] ON [InitiativeAuthors] ([InitiativeId], [AuthorId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_Initiatives_Category] ON [Initiatives] ([Category]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE UNIQUE INDEX [IX_Initiatives_Code] ON [Initiatives] ([Code]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_Initiatives_OwningUnitId] ON [Initiatives] ([OwningUnitId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_Initiatives_Status] ON [Initiatives] ([Status]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_InitiativeStatusHistories_InitiativeId] ON [InitiativeStatusHistories] ([InitiativeId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_Notifications_RecipientUserId_IsRead] ON [Notifications] ([RecipientUserId], [IsRead]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_Reviews_AppraisalTeamId] ON [Reviews] ([AppraisalTeamId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_Reviews_InitiativeId] ON [Reviews] ([InitiativeId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE UNIQUE INDEX [IX_SystemSettings_Key] ON [SystemSettings] ([Key]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE UNIQUE INDEX [IX_Units_Code] ON [Units] ([Code]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_Units_ParentUnitId] ON [Units] ([ParentUnitId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260415141734_InitialCreate'
|
||||
)
|
||||
BEGIN
|
||||
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
||||
VALUES (N'20260415141734_InitialCreate', N'10.0.6');
|
||||
END;
|
||||
|
||||
COMMIT;
|
||||
GO
|
||||
|
||||
@@ -0,0 +1,175 @@
|
||||
BEGIN TRANSACTION;
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [InitiativeReports] (
|
||||
[Id] uniqueidentifier NOT NULL,
|
||||
[Code] nvarchar(50) NOT NULL,
|
||||
[InitiativeId] uniqueidentifier NOT NULL,
|
||||
[ActualOutcomes] nvarchar(4000) NULL,
|
||||
[ActualBudget] decimal(18,2) NULL,
|
||||
[ImplementationNotes] nvarchar(4000) NULL,
|
||||
[Challenges] nvarchar(4000) NULL,
|
||||
[LessonsLearned] nvarchar(4000) NULL,
|
||||
[Status] int NOT NULL,
|
||||
[SubmissionDate] datetime2 NULL,
|
||||
[ApprovalDate] datetime2 NULL,
|
||||
[SubmittedByUserId] nvarchar(450) NULL,
|
||||
[CreatedAt] datetime2 NOT NULL,
|
||||
[UpdatedAt] datetime2 NULL,
|
||||
[CreatedBy] nvarchar(max) NULL,
|
||||
[UpdatedBy] nvarchar(max) NULL,
|
||||
[IsDeleted] bit NOT NULL,
|
||||
[DeletedAt] datetime2 NULL,
|
||||
[DeletedBy] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_InitiativeReports] PRIMARY KEY ([Id]),
|
||||
CONSTRAINT [FK_InitiativeReports_Initiatives_InitiativeId] FOREIGN KEY ([InitiativeId]) REFERENCES [Initiatives] ([Id]) ON DELETE NO ACTION
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [RecognitionDocuments] (
|
||||
[Id] uniqueidentifier NOT NULL,
|
||||
[Code] nvarchar(50) NOT NULL,
|
||||
[ReportId] uniqueidentifier NOT NULL,
|
||||
[Type] int NOT NULL,
|
||||
[Content] nvarchar(max) NULL,
|
||||
[Summary] nvarchar(1000) NULL,
|
||||
[Status] int NOT NULL,
|
||||
[SubmissionDate] datetime2 NULL,
|
||||
[ApprovalDate] datetime2 NULL,
|
||||
[SubmittedByUserId] nvarchar(450) NULL,
|
||||
[CreatedAt] datetime2 NOT NULL,
|
||||
[UpdatedAt] datetime2 NULL,
|
||||
[CreatedBy] nvarchar(max) NULL,
|
||||
[UpdatedBy] nvarchar(max) NULL,
|
||||
[IsDeleted] bit NOT NULL,
|
||||
[DeletedAt] datetime2 NULL,
|
||||
[DeletedBy] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_RecognitionDocuments] PRIMARY KEY ([Id]),
|
||||
CONSTRAINT [FK_RecognitionDocuments_InitiativeReports_ReportId] FOREIGN KEY ([ReportId]) REFERENCES [InitiativeReports] ([Id]) ON DELETE CASCADE
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [ReportStatusHistories] (
|
||||
[Id] uniqueidentifier NOT NULL,
|
||||
[ReportId] uniqueidentifier NOT NULL,
|
||||
[FromStatus] int NOT NULL,
|
||||
[ToStatus] int NOT NULL,
|
||||
[Comment] nvarchar(2000) NULL,
|
||||
[ChangedByUserId] nvarchar(450) NOT NULL,
|
||||
[CreatedAt] datetime2 NOT NULL,
|
||||
[UpdatedAt] datetime2 NULL,
|
||||
[CreatedBy] nvarchar(max) NULL,
|
||||
[UpdatedBy] nvarchar(max) NULL,
|
||||
[IsDeleted] bit NOT NULL,
|
||||
[DeletedAt] datetime2 NULL,
|
||||
[DeletedBy] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_ReportStatusHistories] PRIMARY KEY ([Id]),
|
||||
CONSTRAINT [FK_ReportStatusHistories_InitiativeReports_ReportId] FOREIGN KEY ([ReportId]) REFERENCES [InitiativeReports] ([Id]) ON DELETE CASCADE
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities'
|
||||
)
|
||||
BEGIN
|
||||
CREATE TABLE [DocumentStatusHistories] (
|
||||
[Id] uniqueidentifier NOT NULL,
|
||||
[DocumentId] uniqueidentifier NOT NULL,
|
||||
[FromStatus] int NOT NULL,
|
||||
[ToStatus] int NOT NULL,
|
||||
[Comment] nvarchar(2000) NULL,
|
||||
[ChangedByUserId] nvarchar(450) NOT NULL,
|
||||
[CreatedAt] datetime2 NOT NULL,
|
||||
[UpdatedAt] datetime2 NULL,
|
||||
[CreatedBy] nvarchar(max) NULL,
|
||||
[UpdatedBy] nvarchar(max) NULL,
|
||||
[IsDeleted] bit NOT NULL,
|
||||
[DeletedAt] datetime2 NULL,
|
||||
[DeletedBy] nvarchar(max) NULL,
|
||||
CONSTRAINT [PK_DocumentStatusHistories] PRIMARY KEY ([Id]),
|
||||
CONSTRAINT [FK_DocumentStatusHistories_RecognitionDocuments_DocumentId] FOREIGN KEY ([DocumentId]) REFERENCES [RecognitionDocuments] ([Id]) ON DELETE CASCADE
|
||||
);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_DocumentStatusHistories_DocumentId] ON [DocumentStatusHistories] ([DocumentId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities'
|
||||
)
|
||||
BEGIN
|
||||
CREATE UNIQUE INDEX [IX_InitiativeReports_Code] ON [InitiativeReports] ([Code]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_InitiativeReports_InitiativeId] ON [InitiativeReports] ([InitiativeId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_InitiativeReports_Status] ON [InitiativeReports] ([Status]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities'
|
||||
)
|
||||
BEGIN
|
||||
CREATE UNIQUE INDEX [IX_RecognitionDocuments_Code] ON [RecognitionDocuments] ([Code]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities'
|
||||
)
|
||||
BEGIN
|
||||
CREATE UNIQUE INDEX [IX_RecognitionDocuments_ReportId_Type] ON [RecognitionDocuments] ([ReportId], [Type]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities'
|
||||
)
|
||||
BEGIN
|
||||
CREATE INDEX [IX_ReportStatusHistories_ReportId] ON [ReportStatusHistories] ([ReportId]);
|
||||
END;
|
||||
|
||||
IF NOT EXISTS (
|
||||
SELECT * FROM [__EFMigrationsHistory]
|
||||
WHERE [MigrationId] = N'20260416081839_AddReportAndDocumentEntities'
|
||||
)
|
||||
BEGIN
|
||||
INSERT INTO [__EFMigrationsHistory] ([MigrationId], [ProductVersion])
|
||||
VALUES (N'20260416081839_AddReportAndDocumentEntities', N'10.0.6');
|
||||
END;
|
||||
|
||||
COMMIT;
|
||||
GO
|
||||
|
||||
Reference in New Issue
Block a user