Skip to content

Commit

Permalink
Version 0.32-alpha.
Browse files Browse the repository at this point in the history
  • Loading branch information
riclolsen committed May 16, 2024
1 parent ef4b936 commit ac51a88
Show file tree
Hide file tree
Showing 28 changed files with 15,145 additions and 36 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4.
* MongoDB as the real-time core database, persistence layer, config store, SOE historian.
* Event-based realtime async data processing with MongoDB Change Streams.
* Portability and modular interoperability over Linux, Windows, Mac OSX, x86/64, ARM.
* Windows installer available in the [releases section](https://github.com/riclolsen/json-scada/releases/tag/V0.31-alpha).
* Windows installer available in the [releases section](https://github.com/riclolsen/json-scada/releases/tag/V0.32-alpha).
* Unlimited tags, servers, and users.
* Horizontal scalability, from a single computer to big clusters (MongoDB-sharding), Docker containers, VMs, Kubernetes, cloud, or hybrid deployments.
* Modular distributed architecture. Lightweight redundant data acquisition nodes can connect securely over TLS to the database server. E.g. a Raspberry PI can be a data acquisition node.
Expand Down Expand Up @@ -83,7 +83,7 @@ To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4.
## Documentation

* [Install Guide](https://github.com/riclolsen/json-scada/blob/master/docs/install.md)
* [Windows installer](https://github.com/riclolsen/json-scada/releases/tag/V0.31-alpha)
* [Windows installer](https://github.com/riclolsen/json-scada/releases/tag/V0.32-alpha)
* [Docker Demo](https://github.com/riclolsen/json-scada/blob/master/demo-docker/README.md)
* [Schema Documentation](https://github.com/riclolsen/json-scada/blob/master/docs/schema.md)
* [Config File](https://github.com/riclolsen/json-scada/blob/master/conf/README.md)
Expand Down
10 changes: 9 additions & 1 deletion conf-templates/nginx_http.conf
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,16 @@
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

# reverse proxy, redirect metabase requests (pass it to nodejs server_realtime_auth that redirects to metabase)
location /metabase/ {
proxy_pass http://127.0.0.1:8080/metabase/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

# reverse proxy, redirect log.io requests (pass it to nodejs server_realtime_auth that redirects to log.io server)
location /log-io/ {
proxy_pass http://127.0.0.1:8080/log-io/;
Expand Down
8 changes: 8 additions & 0 deletions conf-templates/nginx_https.conf
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,14 @@
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# }

# # reverse proxy, redirect metabase requests (pass it to nodejs server_realtime_auth that redirects to metabase)
# location /metabase/ {
# proxy_pass http://127.0.0.1:8080/metabase/;
# proxy_set_header Host $host;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# }

# # reverse proxy, redirect log.io requests (pass it to nodejs server_realtime_auth that redirects to log.io server)
# location /log-io/ {
# proxy_pass http://127.0.0.1:8080/log-io/;
Expand Down
4 changes: 2 additions & 2 deletions index.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4.
* MongoDB as the real-time core database, persistence layer, config store, SOE historian.
* Event-based realtime async data processing with MongoDB Change Streams.
* Portability and modular interoperability over Linux, Windows, Mac OSX, x86/64, ARM.
* Windows installer available in the [releases section](https://github.com/riclolsen/json-scada/releases/tag/V0.31-alpha).
* Windows installer available in the [releases section](https://github.com/riclolsen/json-scada/releases/tag/V0.32-alpha).
* Unlimited tags, servers, and users.
* Horizontal scalability, from a single computer to big clusters (MongoDB-sharding), Docker containers, VMs, Kubernetes, cloud, or hybrid deployments.
* Modular distributed architecture. Lightweight redundant data acquisition nodes can connect securely over TLS to the database server. E.g. a Raspberry PI can be a data acquisition node.
Expand Down Expand Up @@ -83,7 +83,7 @@ To provide an easy to use, fully-featured, scalable, and portable SCADA/IIoT-I4.
## Documentation

* [Install Guide](docs/install.md)
* [Windows installer](https://github.com/riclolsen/json-scada/releases/tag/V0.31-alpha)
* [Windows installer](https://github.com/riclolsen/json-scada/releases/tag/V0.32-alpha)
* [Docker Demo](demo-docker/README.md)
* [Schema Documentation](docs/schema.md)
* [Config File](conf/README.md)
Expand Down
15 changes: 12 additions & 3 deletions platform-windows/create_services.bat
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,27 @@ rem Create services, they will run in background independently of a logged user

cd \json-scada\bin

rem POSTGRESQL
C:\json-scada\platform-windows\postgresql-runtime\bin\pg_ctl.exe register -N JSON_SCADA_postgresql -D "C:\json-scada\platform-windows\postgresql-data"
nssm set JSON_SCADA_postgresql Start SERVICE_AUTO_START

rem GRAFANA (connected to local postgresql)
nssm install JSON_SCADA_grafana "C:\json-scada\platform-windows\grafana-runtime\bin\grafana-server.exe"
nssm set JSON_SCADA_grafana AppDirectory "C:\json-scada\platform-windows\grafana-runtime\bin"
nssm set JSON_SCADA_grafana AppEnvironmentExtra GF_SERVER_DOMAIN="127.0.0.1" GF_SERVER_ROOT_URL="%(protocol)s://%(domain)s:80/grafana/" GF_SERVER_SERVE_FROM_SUB_PATH="true" GF_AUTH_PROXY_ENABLED="true" GF_AUTH_PROXY_ENABLE_LOGIN_TOKEN="true" GF_AUTH_DISABLE_SIGNOUT_MENU="true" GF_AUTH_PROXY_WHITELIST="127.0.0.1" GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION="true" GF_SERVER_HTTP_ADDR="127.0.0.1" GF_SERVER_ENFORCE_DOMAIN="true" GF_SERVER_ENABLE_GZIP="true" GF_ANALYTICS_REPORTING_ENABLED="false" GF_ANALYTICS_CHECK_FOR_UPDATES="false" GF_SECURITY_ALLOW_EMBEDDING="true"
rem example of using postgresql to host grafana config (necessary for multiple web servers):
rem nssm set JSON_SCADA_grafana AppEnvironmentExtra GF_DATABASE_TYPE="postgres" GF_DATABASE_HOST="127.0.0.1" GF_DATABASE_USER="postgres" GF_DATABASE_PASSWORD="pwd"
nssm set JSON_SCADA_grafana AppEnvironmentExtra GF_SERVER_DOMAIN="127.0.0.1" GF_SERVER_ROOT_URL="%(protocol)s://%(domain)s:80/grafana/" GF_SERVER_SERVE_FROM_SUB_PATH="true" GF_AUTH_PROXY_ENABLED="true" GF_AUTH_PROXY_ENABLE_LOGIN_TOKEN="true" GF_AUTH_DISABLE_SIGNOUT_MENU="true" GF_AUTH_PROXY_WHITELIST="127.0.0.1" GF_SECURITY_DISABLE_INITIAL_ADMIN_CREATION="true" GF_SERVER_HTTP_ADDR="127.0.0.1" GF_SERVER_ENFORCE_DOMAIN="true" GF_SERVER_ENABLE_GZIP="true" GF_ANALYTICS_REPORTING_ENABLED="false" GF_ANALYTICS_CHECK_FOR_UPDATES="false" GF_SECURITY_ALLOW_EMBEDDING="true" GF_DATABASE_TYPE="postgres" GF_DATABASE_NAME="grafanaappdb" GF_DATABASE_HOST="127.0.0.1" GF_DATABASE_USER="postgres" GF_DATABASE_PASSWORD=""
REM nssm set JSON_SCADA_grafana AppStdout "C:\json-scada\log\grafana-stdout.log"
REM nssm set JSON_SCADA_grafana AppStderr "C:\json-scada\log\grafana-stderr.log"
nssm set JSON_SCADA_grafana Start SERVICE_AUTO_START

rem METABASE (connected to local postgresql)
nssm install JSON_SCADA_metabase "C:\json-scada\platform-windows\jdk-runtime\bin\java" -jar "C:\json-scada\platform-windows\metabase-runtime\metabase.jar"
nssm set JSON_SCADA_metabase AppDirectory "C:\json-scada\platform-windows\metabase-runtime"
nssm set JSON_SCADA_metabase AppEnvironmentExtra MB_JETTY_PORT="3001" MB_DB_TYPE="postgres" MB_DB_DBNAME="metabaseappdb" MB_DB_PORT="5432" MB_DB_USER="postgres" MB_DB_PASS="" MB_DB_HOST="localhost" MB_CHECK_FOR_UPDATES="false"
rem the next option is for Metabase pro/enterprise only
rem nssm set JSON_SCADA_metabase AppEnvironmentExtra MB_JWT_ENABLED="true"
nssm set JSON_SCADA_metabase Start SERVICE_DELAYED_AUTO_START

rem MONGODB
nssm install JSON_SCADA_mongodb "C:\json-scada\platform-windows\mongodb-runtime\bin\mongod.exe" --config "c:\json-scada\platform-windows\mongodb-conf\mongod.cfg"
nssm set JSON_SCADA_mongodb Start SERVICE_AUTO_START

Expand Down
2 changes: 2 additions & 0 deletions platform-windows/initial_setup.bat
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ ping -n 2 127.0.0.1
call postgresql-start.bat
ping -n 18 127.0.0.1
postgresql-runtime\bin\psql -U postgres -h localhost -f ..\sql\create_tables.sql template1
postgresql-runtime\bin\psql -U postgres -h localhost -f ..\sql\metabaseappdb.sql metabaseappdb
postgresql-runtime\bin\psql -U postgres -h localhost -f ..\sql\grafanaappdb.sql grafanaappdb

call create_services.bat
ping -n 10 127.0.0.1
Expand Down
30 changes: 25 additions & 5 deletions platform-windows/json-scada.nsi
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
; json-scada.nsi
; {json:scada} installer script
; Copyright 2020-2023 - Ricardo L. Olsen
; Copyright 2020-2024 - Ricardo L. Olsen

; NSIS (Nullsoft Scriptable Install System) - http://nsis.sourceforge.net/Main_Page

Expand All @@ -17,8 +17,8 @@ RequestExecutionLevel admin

;--------------------------------

!define VERSION "v.0.31"
!define VERSION_ "0.31.0.0"
!define VERSION "v.0.32"
!define VERSION_ "0.32.0.0"

Function .onInit
System::Call 'keexrnel32::CreateMutexA(i 0, i 0, t "MutexJsonScadaInstall") i .r1 ?e'
Expand Down Expand Up @@ -109,6 +109,7 @@ SetRegView 64

; Closes all processes
nsExec::Exec 'net stop JSON_SCADA_grafana'
nsExec::Exec 'net stop JSON_SCADA_metabase'
nsExec::Exec 'net stop JSON_SCADA_mongodb'
nsExec::Exec 'net stop JSON_SCADA_calculations'
nsExec::Exec 'net stop JSON_SCADA_cs_data_processor'
Expand Down Expand Up @@ -153,6 +154,7 @@ SetRegView 64
var /GLOBAL NAVVISANO
var /GLOBAL NAVVISTEL
var /GLOBAL NAVGRAFAN
var /GLOBAL NAVMETABA
var /GLOBAL HTTPSRV

# PROTOCOL://IP:PORT
Expand All @@ -169,6 +171,7 @@ SetRegView 64
StrCpy $NAVVISANO "/tabular.html?SELMODULO=ALARMS_VIEWER"
StrCpy $NAVVISTEL "/display.html"
StrCpy $NAVGRAFAN "/grafana"
StrCpy $NAVMETABA "/metabase"

; write reg info
WriteRegStr HKLM SOFTWARE\JSON_SCADA "Install_Dir" "$INSTDIR"
Expand Down Expand Up @@ -197,6 +200,8 @@ SetRegView 64
CreateDirectory "$INSTDIR\src"
; CreateDirectory "$INSTDIR\Opc.Ua.CertificateGenerator"
CreateDirectory "$INSTDIR\platform-windows"
CreateDirectory "$INSTDIR\platform-windows\jdk-runtime"
CreateDirectory "$INSTDIR\platform-windows\metabase-runtime"
CreateDirectory "$INSTDIR\platform-windows\grafana-runtime"
CreateDirectory "$INSTDIR\platform-windows\browser-runtime"
CreateDirectory "$INSTDIR\platform-windows\browser-data"
Expand Down Expand Up @@ -236,7 +241,7 @@ SetRegView 64
File /a "..\platform-windows\nssm.exe"
File /a "..\platform-windows\sounder.exe"
File /a "..\platform-windows\vc_redist.x64.exe"
File /a "..\platform-windows\dotnet-runtime-6.0.24-win-x64.exe"
File /a "..\platform-windows\dotnet-runtime-6.0.29-win-x64.exe"

; Visual C redist: needed for timescaledb
;ReadRegStr $0 HKLM "SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x86" "Major"
Expand All @@ -250,7 +255,7 @@ SetRegView 64
Sleep 1000
Exec '"$INSTDIR\platform-windows\vc_redist.x64.exe" /install /passive /quiet'
Sleep 1000
Exec '"$INSTDIR\platform-windows\dotnet-runtime-6.0.24-win-x64.exe" /install /passive /quiet'
Exec '"$INSTDIR\platform-windows\dotnet-runtime-6.0.29-win-x64.exe" /install /passive /quiet'

SetOutPath $INSTDIR\platform-windows\nodejs-runtime
File /a /r "..\platform-windows\nodejs-runtime\*.*"
Expand All @@ -260,6 +265,12 @@ SetRegView 64

SetOutPath $INSTDIR\docs
File /a /r "..\docs\*.*"

SetOutPath $INSTDIR\platform-windows\jdk-runtime
File /a /r "..\platform-windows\jdk-runtime\*.*"

SetOutPath $INSTDIR\platform-windows\metabase-runtime
File /a /r "..\platform-windows\metabase-runtime\metabase.jar"

SetOutPath $INSTDIR\platform-windows\grafana-runtime
File /a /r "..\platform-windows\grafana-runtime\*.*"
Expand Down Expand Up @@ -288,6 +299,8 @@ SetRegView 64
SetOutPath $INSTDIR\sql
File /a "..\sql\*.bat"
File /a "..\sql\create_tables.sql"
File /a "..\sql\metabaseappdb.sql"
File /a "..\sql\grafanaappdb.sql"
File /a "..\sql\*.md"

SetOutPath $INSTDIR\platform-windows\nginx_php-runtime
Expand Down Expand Up @@ -472,6 +485,7 @@ SetRegView 64
CreateShortCut "$DESKTOP\JSON-SCADA\Viewer - Tabular.lnk" "$INSTDIR\$NAVWINCMD" " $NAVDATDIR $NAVPREOPT --app=$HTTPSRV$NAVVISTAB $NAVPOSOPT" "$INSTDIR\src\htdocs\images\tabular.ico"
CreateShortCut "$DESKTOP\JSON-SCADA\Viewer - Alarms.lnk" "$INSTDIR\$NAVWINCMD" " $NAVDATDIR $NAVPREOPT --app=$HTTPSRV$NAVVISANO $NAVPOSOPT" "$INSTDIR\src\htdocs\images\firstaid.ico"
CreateShortCut "$DESKTOP\JSON-SCADA\Viewer - Grafana.lnk" "$INSTDIR\$NAVWINCMD" " $NAVDATDIR $NAVPREOPT --app=$HTTPSRV$NAVGRAFAN $NAVPOSOPT" "$INSTDIR\src\htdocs\images\grafana.ico"
CreateShortCut "$DESKTOP\JSON-SCADA\Viewer - Metabase.lnk" "$INSTDIR\$NAVWINCMD" " $NAVDATDIR $NAVPREOPT --app=$HTTPSRV$NAVMETABA $NAVPOSOPT" "$INSTDIR\src\htdocs\images\metabase.ico"
CreateShortCut "$DESKTOP\JSON-SCADA\Excel Config Spreadsheet.lnk" "$INSTDIR\conf\json-scada-config.xlsm"
CreateShortCut "$DESKTOP\JSON-SCADA\Compass (Mongodb GUI Client).lnk" "$INSTDIR\platform-windows\mongodb-compass-runtime\MongoDBCompass.exe"
CreateShortCut "$DESKTOP\JSON-SCADA\Inkscape SAGE (SVG Editor).lnk" "$INSTDIR\platform-windows\inkscape-runtime\bin\inkscape.exe"
Expand Down Expand Up @@ -645,6 +659,11 @@ Section "Uninstall"
ExecWait `"${SC}" delete "JSON_SCADA_grafana"`
ClearErrors

ExecWait `"${SC}" stop "JSON_SCADA_metabase"`
Sleep 50
ExecWait `"${SC}" delete "JSON_SCADA_metabase"`
ClearErrors

ExecWait `"${SC}" stop "JSON_SCADA_mongodb"`
Sleep 50
ExecWait `"${SC}" delete "JSON_SCADA_mongodb"`
Expand Down Expand Up @@ -691,6 +710,7 @@ Section "Uninstall"
Sleep 5000
ExecWait `wmic PROCESS WHERE "COMMANDLINE LIKE '%c:\\json-scada\\sql\\%'" CALL TERMINATE`
Sleep 1000
ExecWait `wmic PROCESS WHERE "COMMANDLINE LIKE '%c:\\json-scada\\platform-windows\\jdk-runtime\\bin\\%'" CALL TERMINATE`
ExecWait `wmic PROCESS WHERE "COMMANDLINE LIKE '%c:\\json-scada\\platform-windows\\grafana-runtime\\bin\\%'" CALL TERMINATE`
ExecWait `wmic PROCESS WHERE "COMMANDLINE LIKE '%c:\\json-scada\\platform-windows\\nginx_php-runtime\\php\\%'" CALL TERMINATE`
ExecWait `wmic PROCESS WHERE "COMMANDLINE LIKE '%c:\\json-scada\\platform-windows\\nginx_php-runtime\\%'" CALL TERMINATE`
Expand Down
30 changes: 29 additions & 1 deletion platform-windows/release_notes.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{json:scada}

© 2008-2023 Ricardo L. Olsen
© 2008-2024 Ricardo L. Olsen
(https://www.linkedin.com/in/ricardo-olsen/)

This program is free software: you can redistribute it and/or modify
Expand Down Expand Up @@ -129,6 +129,34 @@ See official repo:

Inkscape+SAGE:
* See http://wiki.inkscape.org/wiki/index.php/Compiling_Inkscape_on_Windows_with_MSYS2.

-------------------------------------------------------------------

Notes for version 0.32:

* Default login credentials: username=admin password=jsonscada.
* Enhancements and bug fixes on IEC61850 controls.
* Added processing of NDATA messages of MQTT/Sparkplug.
* Added Metabase 0.49.10 connected to the local PostgreSQL. Credentials: username=json@scada.com password=jsonscada123.
* Added OpenJDK 22.0.1.
* Telegraf runtime updated to 1.30.2.
* MongoDB Community Server updated to 7.0.9.
* MongoDB Compass updated to 1.44.0.
* Grafana updated to 9.5.18, now connect to local PostgreSQL.
* Dotnet runtime updated to 6.0.29.
* Nodejs runtime updated to 20.13.1.
* Npm packages updated.
* Chromium updated to 124.0.6367.202.

Requirements and recommendations:

* Windows 10/11 64 bits or Server >=2016, Windows PowerShell. At least 15GB of free space in the "C:" drive.
* Administrative rights. corporate Windows policies may cause problems with the creation of services and the opening of TCP ports.
* Free TCP ports 6688, 6689, 27017, 5432, 80, 8080, 3000, 9000. Other ports may be required for optional services and protocols.
* If the server already has MongoDB, PostgreSQL, Grafana, Nginx or another webserver, please uninstall, disable or watch out for possible conflicts.
* Do not update previously installed JSON-SCADA. Please uninstall previous JSON-SCADA versions before installing a new version.
* If using VirtualBox configure "paravirtualization interface"=KVM, otherwise Nodejs errors may occur.

-------------------------------------------------------------------

Notes for version 0.31:
Expand Down
1 change: 1 addition & 0 deletions platform-windows/remove_services.bat
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ rem Remove service without confimation

sc delete JSON_SCADA_postgresql
nssm remove JSON_SCADA_grafana confirm
nssm remove JSON_SCADA_metabase confirm
nssm remove JSON_SCADA_mongodb confirm
nssm remove JSON_SCADA_cs_data_processor confirm
nssm remove JSON_SCADA_cs_custom_processor confirm
Expand Down
15 changes: 10 additions & 5 deletions platform-windows/start_services.bat
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@ cd \json-scada\platform-windows

nssm start JSON_SCADA_log_io_server
net start JSON_SCADA_postgresql
nssm start JSON_SCADA_grafana
nssm start JSON_SCADA_mongodb

ping -n 5 127.0.0.1

nssm start JSON_SCADA_log_io_file
nssm start JSON_SCADA_cs_data_processor
nssm start JSON_SCADA_cs_custom_processor
Expand All @@ -24,9 +26,6 @@ REM nssm start JSON_SCADA_config_server_excel
REM nssm start JSON_SCADA_alarm_beep
REM nssm start JSON_SCADA_shell_api

nssm start JSON_SCADA_php
nssm start JSON_SCADA_nginx

REM SELECT PROTOCOLS TO START
nssm start JSON_SCADA_iec104client
nssm start JSON_SCADA_mqttsparkplugclient
Expand All @@ -40,4 +39,10 @@ nssm start JSON_SCADA_opcuaclient
REM nssm start JSON_SCADA_iec61850client
REM nssm start JSON_SCADA_i104m
REM nssm start JSON_SCADA_plctags
REM nssm start JSON_SCADA_opcuaserver
REM nssm start JSON_SCADA_opcuaserver

nssm start JSON_SCADA_grafana
nssm start JSON_SCADA_metabase

nssm start JSON_SCADA_php
nssm start JSON_SCADA_nginx
3 changes: 2 additions & 1 deletion platform-windows/stop_services.bat
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,9 @@ nssm stop JSON_SCADA_process_rtdata
nssm stop JSON_SCADA_process_hist
ping -n 3

REM STOP GRAFANA AND DATABASE SERVERS
REM STOP GRAFANA/METABASE AND DATABASE SERVERS
nssm stop JSON_SCADA_grafana
nssm stop JSON_SCADA_metabase
nssm stop JSON_SCADA_mongodb
net stop JSON_SCADA_postgresql

Expand Down
14 changes: 14 additions & 0 deletions sql/create_tables.sql
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@

-- psql -h 127.0.0.1 -U postgres -w -f create_tables.sql

CREATE DATABASE "grafanaappdb"
WITH OWNER "postgres"
ENCODING 'UTF8'
-- LC_COLLATE = 'en-US.UTF8' -- can cause errors sometimes
-- LC_CTYPE = 'en-US.UTF8'
TEMPLATE template0;

CREATE DATABASE "metabaseappdb"
WITH OWNER "postgres"
ENCODING 'UTF8'
-- LC_COLLATE = 'en-US.UTF8' -- can cause errors sometimes
-- LC_CTYPE = 'en-US.UTF8'
TEMPLATE template0;

CREATE DATABASE "json_scada"
WITH OWNER "postgres"
ENCODING 'UTF8'
Expand Down
Loading

0 comments on commit ac51a88

Please sign in to comment.