From 81bf333f4d7b4d4421648777dd670b78ee493da5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Zieli=C5=84ski?= Date: Fri, 3 Jan 2025 15:13:24 +0100 Subject: [PATCH] Load production DB into container script --- .idea/.idea.DiunaBI/.idea/dataSources.xml | 15 +- .vscode/launch.json | 35 --- .vscode/settings.json | 19 -- .vscode/tasks.json | 41 --- DiunaBI-Frontend.code-workspace | 8 - DiunaBI-WebAPI.code-workspace | 8 - DiunaBI.code-workspace | 7 - Utils/SQL_HELPERS.sql | 301 ---------------------- Utils/getProductionDatabase.sh | 49 ++++ Utils/loadStagingDB.ps1 | 88 ------- docker-compose.yml | 21 +- 11 files changed, 71 insertions(+), 521 deletions(-) delete mode 100644 .vscode/launch.json delete mode 100644 .vscode/settings.json delete mode 100644 .vscode/tasks.json delete mode 100644 DiunaBI-Frontend.code-workspace delete mode 100644 DiunaBI-WebAPI.code-workspace delete mode 100644 DiunaBI.code-workspace delete mode 100644 Utils/SQL_HELPERS.sql create mode 100644 Utils/getProductionDatabase.sh delete mode 100644 Utils/loadStagingDB.ps1 diff --git a/.idea/.idea.DiunaBI/.idea/dataSources.xml b/.idea/.idea.DiunaBI/.idea/dataSources.xml index 0cca57d..a67b441 100644 --- a/.idea/.idea.DiunaBI/.idea/dataSources.xml +++ b/.idea/.idea.DiunaBI/.idea/dataSources.xml @@ -1,7 +1,7 @@ - + sqlserver.jb true true @@ -9,5 +9,18 @@ Server=tcp:127.0.0.1,1433;Initial Catalog=diunabi-morska;Persist Security Info=False;User ID=SA;Password=v](8Lc|RfG;MultipleActiveResultSets=False;Encrypt=False;TrustServerCertificate=False;Connection Timeout=30; $ProjectFileDir$ + + sqlserver.jb + true + true + com.jetbrains.jdbc.sqlserver.SqlServerDriver + Server=tcp:127.0.0.1,1433;Initial Catalog=diunabi-morska;Persist Security Info=False;User ID=SA;Password=$&#ojoOOKEJ223;MultipleActiveResultSets=False;Encrypt=False;TrustServerCertificate=False;Connection Timeout=30; + + + + + + $ProjectFileDir$ + \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 0f88000..0000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - // Use IntelliSense to find out which attributes exist for C# debugging - // Use hover for the description of the existing attributes - // For further information visit https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md. - "name": ".NET Core Launch (web)", - "type": "coreclr", - "request": "launch", - "preLaunchTask": "build", - // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/WebAPI/bin/Debug/net7.0/DiunaBI-WebAPI.dll", - "args": [], - "cwd": "${workspaceFolder}/WebAPI", - "stopAtEntry": false, - // Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser - "serverReadyAction": { - "action": "openExternally", - "pattern": "\\bNow listening on:\\s+(https?://\\S+)" - }, - "env": { - "ASPNETCORE_ENVIRONMENT": "Development" - }, - "sourceFileMap": { - "/Views": "${workspaceFolder}/Views" - } - }, - { - "name": ".NET Core Attach", - "type": "coreclr", - "request": "attach" - } - ] -} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 6c7c3a9..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "sqltools.connections": [ - { - "mssqlOptions": { - "appName": "SQLTools", - "useUTC": true, - "encrypt": true - }, - "previewLimit": 50, - "server": "localhost", - "port": 1433, - "driver": "MSSQL", - "name": "localhost", - "database": "diuna", - "username": "SA", - "password": "v](8Lc|RfG" - } - ] -} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index d948d4d..0000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "label": "build", - "command": "dotnet", - "type": "process", - "args": [ - "build", - "${workspaceFolder}/DiunaBI.sln", - "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary" - ], - "problemMatcher": "$msCompile" - }, - { - "label": "publish", - "command": "dotnet", - "type": "process", - "args": [ - "publish", - "${workspaceFolder}/DiunaBI.sln", - "/property:GenerateFullPaths=true", - "/consoleloggerparameters:NoSummary" - ], - "problemMatcher": "$msCompile" - }, - { - "label": "watch", - "command": "dotnet", - "type": "process", - "args": [ - "watch", - "run", - "--project", - "${workspaceFolder}/DiunaBI.sln" - ], - "problemMatcher": "$msCompile" - } - ] -} \ No newline at end of file diff --git a/DiunaBI-Frontend.code-workspace b/DiunaBI-Frontend.code-workspace deleted file mode 100644 index 6a3b3ab..0000000 --- a/DiunaBI-Frontend.code-workspace +++ /dev/null @@ -1,8 +0,0 @@ -{ - "folders": [ - { - "path": "Frontend" - } - ], - "settings": {} -} \ No newline at end of file diff --git a/DiunaBI-WebAPI.code-workspace b/DiunaBI-WebAPI.code-workspace deleted file mode 100644 index 2d40c78..0000000 --- a/DiunaBI-WebAPI.code-workspace +++ /dev/null @@ -1,8 +0,0 @@ -{ - "folders": [ - { - "path": "WebAPI" - } - ], - "settings": {} -} \ No newline at end of file diff --git a/DiunaBI.code-workspace b/DiunaBI.code-workspace deleted file mode 100644 index 76fb9fb..0000000 --- a/DiunaBI.code-workspace +++ /dev/null @@ -1,7 +0,0 @@ -{ - "folders": [ - { - "path": "." - } - ] -} \ No newline at end of file diff --git a/Utils/SQL_HELPERS.sql b/Utils/SQL_HELPERS.sql deleted file mode 100644 index 4433eec..0000000 --- a/Utils/SQL_HELPERS.sql +++ /dev/null @@ -1,301 +0,0 @@ --- REMOVE LAYER ---DECLARE @LayerId UNIQUEIDENTIFIER; ---SET @LayerId = '92ee1732-3900-4a8e-bb78-9bdc00332dd3'; ---DELETE FROM [diunabi-morska].[dbo].[Records] WHERE [LayerId] = (SELECT @LayerId); ---DELETE FROM [diunabi-morska].[dbo].[Layers] WHERE [Id] = (SELECT @LayerId); - --- ADD IMPORT LAYER ---DECLARE @LayerId UNIQUEIDENTIFIER; ---SET @LayerId = 'a1ef2933-d277-447f-a941-adaa5ac07e7e'; --- ---INSERT INTO [diunabi-morska].[dbo].[Layers] ---([Id], [Number], [Source], [Name], [CreatedAt], [ModifiedAt], [IsDeleted], ---[CreatedById], [ModifiedById], [Type]) ---VALUES ((SELECT @LayerId),1152, 'Manual', 'L1152-A-IW_K5-2024/05-202404302253', ---GETDATE(), GETDATE(), 0, '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 2); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'StartDate', '2024.04.29', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'EndDate', '2024.06.05', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Source', 'GoogleSheet', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'SheetTabName', 'Maj_2024', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'SheetId', '1ZzndU8HjYqz5VKCcrVHBOFW8fqpYfwquclznX9q39Yk', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'DataRange', 'D4:BT5', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'ImportName', 'D3', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'ImportMonth', 'F3', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'ImportYear', 'E3', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'CheckSum', 'G3', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Type', 'ImportWorker', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'IsEnabled', 'True', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- --- ---ADD PROCESS LAYERS --- T3-SingleSource ---DECLARE @LayerId UNIQUEIDENTIFIER; ---SET @LayerId = '07e4f45b-5cef-4830-b21b-3f8babc767ac'; --- ---INSERT INTO [diunabi-morska].[dbo].[Layers] ---([Id], [Number], [Source], [Name], [CreatedAt], [ModifiedAt], [IsDeleted], ---[CreatedById], [ModifiedById], [Type]) ---VALUES ((SELECT @LayerId), 1164, 'Manual', 'L1164-A-PW_K5-2024/05-202404302314', ---GETDATE(), GETDATE(), 0, '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 2); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Source', 'K5', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'SourceLayer', 'L1152-A-IW_K5-2024/05-202404302253', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Type', 'ProcessWorker', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'ProcessType', 'T3-SingleSource', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'IsEnabled', 'True', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Year', '2024', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Month', '05', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- - --- T3-MultiSourceSummary ---DECLARE @LayerId UNIQUEIDENTIFIER; ---SET @LayerId = '010265e5-ac2e-4f32-a659-416063ec5112'; --- ---INSERT INTO [diunabi-morska].[dbo].[Layers] ---([Id], [Number], [Source], [Name], [CreatedAt], [ModifiedAt], [IsDeleted], ---[CreatedById], [ModifiedById], [Type]) ---VALUES ((SELECT @LayerId), 1165, 'Manual', 'L1165-A-PW_AA-2024/05-202404302315', ---GETDATE(), GETDATE(), 0, '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 2); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Source', 'K5', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Source', 'M7', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Source', 'PU', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Source', 'FK', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Type', 'ProcessWorker', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'ProcessType', 'T3-MultiSourceSummary', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'IsEnabled', 'True', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Year', '2024', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Month', '05', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- - --- T3-MultiSourceCopySelectedCodes ---DECLARE @LayerId UNIQUEIDENTIFIER; ---SET @LayerId = 'a6cf0ace-f3f7-4450-b5a3-ee85696baeac'; --- ---INSERT INTO [diunabi-morska].[dbo].[Layers] ---([Id], [Number], [Source], [Name], [CreatedAt], [ModifiedAt], [IsDeleted], ---[CreatedById], [ModifiedById], [Type]) ---VALUES ((SELECT @LayerId), 1166, 'Manual', 'L1166-A-PW_AB-2024/05-202404302317', ---GETDATE(), GETDATE(), 0, '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 2); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Source', 'K5', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Source', 'M7', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Source', 'PU', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Source', 'FK', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Type', 'ProcessWorker', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'ProcessType', 'T3-MultiSourceCopySelectedCodes', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'IsEnabled', 'True', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Year', '2024', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Month', '05', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Codes', '5000-5003;5005;5081-5095;6000-6003;6005;6081-6095;7000-7003;7005;7081-7095;8000-8003;8005;8081-8095', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- - --- T1-R1 ---DECLARE @LayerId UNIQUEIDENTIFIER; ---SET @LayerId = 'a6cf0ace-f3f7-4450-b5a3-ee85696baeac'; --- ---INSERT INTO [diunabi-morska].[dbo].[Layers] ---([Id], [Number], [Source], [Name], [CreatedAt], [ModifiedAt], [IsDeleted], ---[CreatedById], [ModifiedById], [Type]) ---VALUES ((SELECT @LayerId), 1166, 'Manual', 'L1166-A-PW_R1-2024-202404302317', ---GETDATE(), GETDATE(), 0, '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 2); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Source', 'K5', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Source', 'M7', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Source', 'PU', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Source', 'FK', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Source', 'AA', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Type', 'ProcessWorker', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'ProcessType', 'T3-R1', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'IsEnabled', 'True', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Year', '2024', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- ---INSERT INTO [diunabi-morska].[dbo].[Records] ---([Id], [Code], [Desc1], [CreatedAt], [ModifiedAt], [CreatedById], [ModifiedById], [IsDeleted], [LayerId]) ---VALUES ((SELECT NEWID()), 'Codes', '5000-5003;5005;5081-5095;6000-6003;6005;6081-6095;7000-7003;7005;7081-7095;8000-8003;8005;8081-8095;9000-9005;9081-9096;9111-9154', ---GETDATE(), GETDATE(), '117be4f0-b5d1-41a1-a962-39dc30cce368', '117be4f0-b5d1-41a1-a962-39dc30cce368', 0, (SELECT @LayerId)); --- \ No newline at end of file diff --git a/Utils/getProductionDatabase.sh b/Utils/getProductionDatabase.sh new file mode 100644 index 0000000..a0be17f --- /dev/null +++ b/Utils/getProductionDatabase.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +#COMMON VARIABLES +DB_NAME="diunabi-morska" +BACKUP_FILE="${DB_NAME}-dev.bak" +#LOCAL VARIABLES +LOCAL_BACKUP_DIR="/Users/mz/Projects/Diuna/DiunaBI/Temp" +LOCAL_BACKUP_PATH=${LOCAL_BACKUP_DIR}/${BACKUP_FILE} +#DOCKER VARIABLES +DOCKER_BACKUP_DIR="/var/opt/mssql/backup" +DOCKER_CONTAINER_NAME="diuna-mssql-2022" +DOCKER_SA_PASSWORD="$&#ojoOOKEJ223" +DOCKER_SQLCMD="/opt/mssql-tools18/bin/sqlcmd" +DOCKER_BACKUP_PATH=${DOCKER_BACKUP_DIR}/${BACKUP_FILE} +#SERVER VARIABLES +REMOTE_HOST="crm.bim-it.pl" +REMOTE_USER="mz" +REMOTE_SA_PASSWORD="v](8Lc|RfG" +REMOTE_BACKUP_DIR="/tmp" + +ssh ${REMOTE_USER}@${REMOTE_HOST} "sudo rm ${REMOTE_BACKUP_DIR}/${BACKUP_FILE}" +ssh ${REMOTE_USER}@${REMOTE_HOST} "/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '${REMOTE_SA_PASSWORD}' -Q \"BACKUP DATABASE [${DB_NAME}] TO DISK = '${REMOTE_BACKUP_DIR}/${BACKUP_FILE}'\"" +scp ${REMOTE_USER}@${REMOTE_HOST}:${REMOTE_BACKUP_DIR}/${BACKUP_FILE} ${LOCAL_BACKUP_DIR}/ + +docker exec -i ${DOCKER_CONTAINER_NAME} mkdir -p ${DOCKER_BACKUP_DIR} +docker cp "${LOCAL_BACKUP_PATH}" "${DOCKER_CONTAINER_NAME}:${DOCKER_BACKUP_PATH}" +docker exec --user=root -i ${DOCKER_CONTAINER_NAME} chown mssql:mssql "$DOCKER_BACKUP_PATH" + +LOGICAL_FILE_INFO=$(docker exec -i ${DOCKER_CONTAINER_NAME} ${DOCKER_SQLCMD} -C -S localhost -U SA -P "${DOCKER_SA_PASSWORD}" -Q "RESTORE FILELISTONLY FROM DISK = '${DOCKER_BACKUP_PATH}'" 2>&1) +DATA_FILE=$(echo "$LOGICAL_FILE_INFO" | awk 'NR==3 {print $1}' | tr -d '[:space:]') +LOG_FILE=$(echo "$LOGICAL_FILE_INFO" | awk 'NR==4 {print $1}' | tr -d '[:space:]') + +RESTORE_OUTPUT=$( + docker exec -i ${DOCKER_CONTAINER_NAME} ${DOCKER_SQLCMD} -C -S localhost -U SA -P "${DOCKER_SA_PASSWORD}" -Q " + IF EXISTS (SELECT name FROM sys.databases WHERE name = '${DB_NAME}') + BEGIN + PRINT 'Database ${DB_NAME} exists. Dropping the database.'; + ALTER DATABASE [${DB_NAME}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE; + DROP DATABASE [${DB_NAME}]; + END; + + RESTORE DATABASE [${DB_NAME}] + FROM DISK = '${DOCKER_BACKUP_PATH}' + WITH MOVE '${DATA_FILE}' TO '/var/opt/mssql/data/${DB_NAME}.mdf', + MOVE '${LOG_FILE}' TO '/var/opt/mssql/data/${DB_NAME}_log.ldf'; + " 2>&1 + ) + +echo $RESTORE_OUTPUT \ No newline at end of file diff --git a/Utils/loadStagingDB.ps1 b/Utils/loadStagingDB.ps1 deleted file mode 100644 index 484dc9e..0000000 --- a/Utils/loadStagingDB.ps1 +++ /dev/null @@ -1,88 +0,0 @@ -Function IsDatabaseExists{ - param([string]$containerId, [string]$database, [string]$sqlPass) - $query = "IF EXISTS - (SELECT name FROM master.sys.databases WHERE name = N'$database') - PRINT 'yes' - ELSE - PRINT 'no'" - return (docker exec $containerId /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $sqlPass -Q $query) - # USE master; ALTER DATABASE b-crm-master; SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DROP DATABASE b-crm-master; -} -Function DropDatabase{ - param([string]$containerId, [string]$database, [string]$sqlPass) - $query = "USE master; - ALTER DATABASE [$database] - SET SINGLE_USER - WITH ROLLBACK IMMEDIATE; - GO - DROP DATABASE [$database];" - docker exec $containerId /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $sqlPass -Q $query > $null - return; - # /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P 'v](8Lc|RfG' -Q "USE master; ALTER DATABASE b-crm-master; SET SINGLE_USER WITH ROLLBACK IMMEDIATE; DROP DATABASE b-crm-master;" -} -Function AttachDatabase{ - param([string]$containerId, [string]$database, [string]$sqlPass, [string]$mdfName, [string]$ldfName) - $query = "CREATE DATABASE [$database] - ON (FILENAME = N'/var/opt/mssql/data/$mdfName'), - (FILENAME = N'/var/opt/mssql/data/$ldfName') FOR ATTACH; - ALTER DATABASE [$database] SET READ_WRITE;" - docker exec $containerId /opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P $sqlPass -Q $query - return; -} -Function CopyFile{ - param([string]$containerId, [string]$fileName) - docker cp ./Temp/$fileName $containerId"://var/opt/mssql/data/$fileName" - docker exec --user root $containerId chown mssql:root /var/opt/mssql/data/$fileName - return; -} - -if ((Split-Path (Get-Location) -Leaf) -ne "DiunaBI") { - Write-Host "Error: Run script from main source directory."; - Exit; -} -try { - $containerId = (docker ps | Select-String "mssql").Line.split(" ")[0] -} catch { - Write-Host "Error: MSSQL container not exists (or Docker is not running)"; - Exit; -} -Write-Host "MSSQL container id: "$containerId; - -$sqlPass = "v](8Lc|RfG"; -# Let's do the job! -@("diuna").ForEach({ - $database = $_; - $ldfName = $database+"_log.ldf"; - $mdfName = $database+".mdf"; - - Write-Host "Restoring database: "$database - # Download mdf/ldf nd check if files are new (donwload with success) - scp "crm.bim-it.pl:/var/opt/mssql/data/$mdfName" ./Temp/ - if (((Get-Date) - ((Get-Item ./Temp/$mdfName).LastWriteTime)).TotalMinutes -gt 5) { - Write-Host "Error: $mdfName was not downloaded correctly." - continue; - } - scp "crm.bim-it.pl:/var/opt/mssql/data/$ldfName" ./Temp/ - if (((Get-Date) - ((Get-Item ./Temp/$ldfName).LastWriteTime)).TotalMinutes -gt 5) { - Write-Host "Error: $ldfName was not downloaded correctly." - continue; - } - - #drop existing database - DropDatabase $containerId $database $sqlPass; - if ((IsDatabaseExists $containerId $database $sqlPass) -eq 'yes') { - Write-Host "Error: $database still exists (drop error)" - continue; - } - #copy new files - CopyFile $containerId $mdfName - CopyFile $containerId $ldfName - #attach databases in container - AttachDatabase $containerId $database $sqlPass $mdfName $ldfName; - if ((IsDatabaseExists $containerId $database $sqlPass) -eq 'no') { - Write-Host "Error: $database still not exists (attach error)" - continue; - } - Write-Host "OK"; -}); -Write-Host "All databases restored!"; \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index dd8980c..60ee3ec 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,14 +1,9 @@ -version: "3.9" services: - db: - container_name: "DIUNA-MSSQL-2019" - image: "mcr.microsoft.com/azure-sql-edge" - ports: - - "1433:1433" - environment: - SA_PASSWORD: "$&#ojoOOKEJ223" - ACCEPT_EULA: "1" - cap_add: - - SYS_PTRACE - -# docker run --cap-add SYS_PTRACE -e 'ACCEPT_EULA=1' -e 'MSSQL_SA_PASSWORD=yourStrong(!)Password' -p 1433:1433 --name azuresqledge -d mcr.microsoft.com/azure-sql-edge \ No newline at end of file + db: + image: mcr.microsoft.com/mssql/server:2022-latest + container_name: diuna-mssql-2022 + ports: + - "1433:1433" + environment: + SA_PASSWORD: "$&#ojoOOKEJ223" + ACCEPT_EULA: "Y" \ No newline at end of file