Files
123123/ZA.CoreService.ESBCertificateManager/Database/03_Seed.sql
T

329 lines
7.7 KiB
Transact-SQL

/*
DATABASE: [EsbZertifikatManager]
OBJECTNAME: Seed
ACTION: INSERT
IDX: 002
DATE: 2026-07-29
USER: CUR
COMMENT: KOMPLETTE Seed-Datei (alles in einem Lauf):
- Company: DE, PL, AT
- Environment: TEST2, TEST, PROD
- SonicConnection: DE-Test (TEST)
- SonicContainer: ct-ZADBService
- CertificateTarget: Platzhalter-Pfad
Keine Credentials (Always Encrypted / Setup-Wizard).
Voraussetzung: 00_DropExisting, 01_CreateDatabase, 02_CreateSchema,
AlwaysEncrypted-Zertifikat importiert (Install-Certificate.ps1).
*/
USE [EsbZertifikatManager];
GO
SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
/* -------------------------------------------------------------------------- */
/* Company */
/* -------------------------------------------------------------------------- */
IF NOT EXISTS
(
SELECT 1
FROM [dbo].[Company] AS company
WHERE company.[CompanyCode] = N'DE'
)
BEGIN
INSERT INTO [dbo].[Company]
(
[CompanyCode],
[CompanyName],
[IsActive],
[CreationDateTime],
[CreatedBy]
)
VALUES
(N'DE', N'ZIEHL-ABEGG Deutschland', 1, SYSUTCDATETIME(), SUSER_SNAME());
END;
GO
IF NOT EXISTS
(
SELECT 1
FROM [dbo].[Company] AS company
WHERE company.[CompanyCode] = N'PL'
)
BEGIN
INSERT INTO [dbo].[Company]
(
[CompanyCode],
[CompanyName],
[IsActive],
[CreationDateTime],
[CreatedBy]
)
VALUES
(N'PL', N'ZIEHL-ABEGG Polen', 1, SYSUTCDATETIME(), SUSER_SNAME());
END;
GO
IF NOT EXISTS
(
SELECT 1
FROM [dbo].[Company] AS company
WHERE company.[CompanyCode] = N'AT'
)
BEGIN
INSERT INTO [dbo].[Company]
(
[CompanyCode],
[CompanyName],
[IsActive],
[CreationDateTime],
[CreatedBy]
)
VALUES
(N'AT', N'ZIEHL-ABEGG Oesterreich', 1, SYSUTCDATETIME(), SUSER_SNAME());
END;
GO
/* -------------------------------------------------------------------------- */
/* Environment */
/* -------------------------------------------------------------------------- */
IF NOT EXISTS
(
SELECT 1
FROM [dbo].[Environment] AS environment
WHERE environment.[EnvironmentCode] = N'TEST2'
)
BEGIN
INSERT INTO [dbo].[Environment]
(
[EnvironmentCode],
[EnvironmentName],
[SortOrder],
[IsActive],
[CreationDateTime],
[CreatedBy]
)
VALUES
(N'TEST2', N'Test 2', 1, 1, SYSUTCDATETIME(), SUSER_SNAME());
END;
GO
IF NOT EXISTS
(
SELECT 1
FROM [dbo].[Environment] AS environment
WHERE environment.[EnvironmentCode] = N'TEST'
)
BEGIN
INSERT INTO [dbo].[Environment]
(
[EnvironmentCode],
[EnvironmentName],
[SortOrder],
[IsActive],
[CreationDateTime],
[CreatedBy]
)
VALUES
(N'TEST', N'Test', 2, 1, SYSUTCDATETIME(), SUSER_SNAME());
END;
GO
IF NOT EXISTS
(
SELECT 1
FROM [dbo].[Environment] AS environment
WHERE environment.[EnvironmentCode] = N'PROD'
)
BEGIN
INSERT INTO [dbo].[Environment]
(
[EnvironmentCode],
[EnvironmentName],
[SortOrder],
[IsActive],
[CreationDateTime],
[CreatedBy]
)
VALUES
(N'PROD', N'Production', 3, 1, SYSUTCDATETIME(), SUSER_SNAME());
END;
GO
/* -------------------------------------------------------------------------- */
/* TEST-System: DE-Test + ct-ZADBService + CertificateTarget */
/* -------------------------------------------------------------------------- */
DECLARE @EnvironmentIdTest [int];
DECLARE @CompanyIdDe [int];
DECLARE @SonicConnectionIdDeTest [int];
DECLARE @SonicContainerId [int];
SELECT @EnvironmentIdTest = environment.[EnvironmentId]
FROM [dbo].[Environment] AS environment
WHERE environment.[EnvironmentCode] = N'TEST';
SELECT @CompanyIdDe = company.[CompanyId]
FROM [dbo].[Company] AS company
WHERE company.[CompanyCode] = N'DE';
IF @EnvironmentIdTest IS NULL
OR @CompanyIdDe IS NULL
BEGIN
THROW 50002,
N'Seed unvollstaendig: Environment TEST oder Company DE fehlt.',
1;
END;
IF NOT EXISTS
(
SELECT 1
FROM [dbo].[SonicConnection] AS connection
WHERE connection.[ConnectionName] = N'DE-Test'
)
BEGIN
INSERT INTO [dbo].[SonicConnection]
(
[EnvironmentId],
[ConnectionName],
[ManagementHost],
[ManagementPort],
[DomainName],
[ConnectionProtocol],
[IsActive],
[CreationDateTime],
[CreatedBy]
)
VALUES
(
@EnvironmentIdTest,
N'DE-Test',
N'dekun-painwbdet',
13070,
N'proalpha-test',
N'tcp',
1,
SYSUTCDATETIME(),
SUSER_SNAME()
);
END;
SELECT @SonicConnectionIdDeTest = connection.[SonicConnectionId]
FROM [dbo].[SonicConnection] AS connection
WHERE connection.[ConnectionName] = N'DE-Test';
IF @SonicConnectionIdDeTest IS NULL
BEGIN
THROW 50003,
N'Seed fehlgeschlagen: SonicConnection DE-Test nicht gefunden.',
1;
END;
IF NOT EXISTS
(
SELECT 1
FROM [dbo].[SonicContainer] AS container
WHERE container.[SonicConnectionId] = @SonicConnectionIdDeTest
AND container.[ContainerName] = N'ct-ZADBService'
)
BEGIN
INSERT INTO [dbo].[SonicContainer]
(
[CompanyId],
[SonicConnectionId],
[ContainerName],
[ContainerDisplayName],
[RestartTimeoutSeconds],
[IsActive],
[CreationDateTime],
[CreatedBy]
)
VALUES
(
@CompanyIdDe,
@SonicConnectionIdDeTest,
N'ct-ZADBService',
N'ZADBService',
180,
1,
SYSUTCDATETIME(),
SUSER_SNAME()
);
END;
SELECT @SonicContainerId = container.[SonicContainerId]
FROM [dbo].[SonicContainer] AS container
WHERE container.[SonicConnectionId] = @SonicConnectionIdDeTest
AND container.[ContainerName] = N'ct-ZADBService';
IF @SonicContainerId IS NULL
BEGIN
THROW 50004,
N'Seed fehlgeschlagen: SonicContainer ct-ZADBService nicht gefunden.',
1;
END;
IF NOT EXISTS
(
SELECT 1
FROM [dbo].[CertificateTarget] AS target
WHERE target.[SonicContainerId] = @SonicContainerId
AND target.[TargetFileName] = N'server.crt'
)
BEGIN
INSERT INTO [dbo].[CertificateTarget]
(
[SonicContainerId],
[TargetDirectory],
[TargetFileName],
[BackupEnabled],
[BackupDirectoryName],
[IsActive],
[CreationDateTime],
[CreatedBy]
)
VALUES
(
@SonicContainerId,
N'C:\ESB\Certificates',
N'server.crt',
1,
N'Backup',
1,
SYSUTCDATETIME(),
SUSER_SNAME()
);
END;
GO
/* Kontrolle */
SELECT
company.[CompanyCode],
environment.[EnvironmentCode],
connection.[ConnectionName],
connection.[ManagementHost],
connection.[ManagementPort],
connection.[DomainName],
container.[ContainerName],
target.[TargetDirectory],
target.[TargetFileName]
FROM [dbo].[SonicConnection] AS connection
INNER JOIN [dbo].[Environment] AS environment
ON environment.[EnvironmentId] = connection.[EnvironmentId]
INNER JOIN [dbo].[SonicContainer] AS container
ON container.[SonicConnectionId] = connection.[SonicConnectionId]
INNER JOIN [dbo].[Company] AS company
ON company.[CompanyId] = container.[CompanyId]
LEFT JOIN [dbo].[CertificateTarget] AS target
ON target.[SonicContainerId] = container.[SonicContainerId]
ORDER BY
environment.[SortOrder],
company.[CompanyCode],
connection.[ConnectionName];
GO