diff --git a/infra/docker-compose.yml b/infra/docker-compose.yml index 65f8a71..5ce0b09 100644 --- a/infra/docker-compose.yml +++ b/infra/docker-compose.yml @@ -65,6 +65,7 @@ services: - scadalink-mssql-data:/var/opt/mssql - ./mssql/setup.sql:/docker-entrypoint-initdb.d/setup.sql:ro - ./mssql/machinedata_seed.sql:/docker-entrypoint-initdb.d/machinedata_seed.sql:ro + - ./mssql/setup-env2.sql:/docker-entrypoint-initdb.d/setup-env2.sql:ro networks: - scadalink-net restart: unless-stopped diff --git a/infra/mssql/setup-env2.sql b/infra/mssql/setup-env2.sql new file mode 100644 index 0000000..0c634b5 --- /dev/null +++ b/infra/mssql/setup-env2.sql @@ -0,0 +1,31 @@ +-- ScadaLink env2 database setup +-- Creates env2 logical databases on an existing scadalink-mssql instance. +-- Idempotent: re-runs are no-ops. Assumes setup.sql has already run +-- (i.e. the scadalink_app login already exists). + +-- Create env2 databases +IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = 'ScadaLinkConfig2') + CREATE DATABASE ScadaLinkConfig2; +GO + +IF NOT EXISTS (SELECT name FROM sys.databases WHERE name = 'ScadaLinkMachineData2') + CREATE DATABASE ScadaLinkMachineData2; +GO + +-- Grant db_owner on ScadaLinkConfig2 +USE ScadaLinkConfig2; +GO +IF NOT EXISTS (SELECT name FROM sys.database_principals WHERE name = 'scadalink_app') + CREATE USER scadalink_app FOR LOGIN scadalink_app; +GO +ALTER ROLE db_owner ADD MEMBER scadalink_app; +GO + +-- Grant db_owner on ScadaLinkMachineData2 +USE ScadaLinkMachineData2; +GO +IF NOT EXISTS (SELECT name FROM sys.database_principals WHERE name = 'scadalink_app') + CREATE USER scadalink_app FOR LOGIN scadalink_app; +GO +ALTER ROLE db_owner ADD MEMBER scadalink_app; +GO