@@ -17,14 +17,16 @@ chcp 65001 >nul
1717TITLE DB Generator
1818
1919:: ------------------------------------------------------------------------------
20- :: Run MySQL/MariaDB generators (оставлены как есть)
20+ :: Run MySQL/MariaDB generators
2121:: ------------------------------------------------------------------------------
22+
2223call " %OSP_ROOT_DIR% \generate\genmariadb.bat"
2324call " %OSP_ROOT_DIR% \generate\genmysql.bat"
2425
2526:: ------------------------------------------------------------------------------
2627:: PostgreSQL init per version
2728:: ------------------------------------------------------------------------------
29+
2830call :postgresql PostgreSQL-11
2931call :postgresql PostgreSQL-12
3032call :postgresql PostgreSQL-13
@@ -39,6 +41,7 @@ goto end
3941:: INIT PostgreSQL (robust, no PowerShell, safe dirs, clean start)
4042:: Args: %1 = module name, e.g. PostgreSQL-15
4143:: --------------------------------------------------------------------------------
44+
4245:postgresql
4346setlocal EnableDelayedExpansion
4447
@@ -70,45 +73,14 @@ if not exist "%DATA_DIR%" (
7073 endlocal & exit /b 1
7174)
7275
73- :: Подготовка шаблонов конфигурации
74- set " SRC_CONF = %OSP_ROOT_DIR% \generate\config\PostgreSQL\postgresql.conf"
75- set " SRC_HBA = %OSP_ROOT_DIR% \generate\config\PostgreSQL\pg_hba.conf"
76-
77- :: Если есть шаблоны — скопируем их в data (initdb позже перезапишет своими дефолтами некоторые опции,
78- :: мы заменим файлы после initdb ещё раз при необходимости).
79- if exist " %SRC_CONF% " (
80- copy /Y " %SRC_CONF% " " %DATA_DIR% \postgresql.conf" > nul
81- )
82- if exist " %SRC_HBA% " (
83- copy /Y " %SRC_HBA% " " %DATA_DIR% \pg_hba.conf" > nul
84- )
85-
86- :: Подстановка плейсхолдеров в конфиги (если файлы существуют)
87- :: В конфиге обычно удобнее использовать прямые слэши:
88- set " ROOT_DIR_ESC = %OSP_ROOT_DIR:\ =/ % "
89- for %%F in (" postgresql.conf" " pg_hba.conf" ) do (
90- if exist " %DATA_DIR% \%%~F " (
91- set " TMPF = %DATA_DIR% \%%~nF .tmp"
92- > " !TMPF! " (
93- for /f " usebackq delims=" %%L in (" %DATA_DIR% \%%~F " ) do (
94- set " line = %%L "
95- set " line = !line:{root_dir} =%ROOT_DIR_ESC% ! "
96- set " line = !line:{module_name} =%MODULE% ! "
97- echo(!line!
98- )
99- )
100- move /y " !TMPF! " " %DATA_DIR% \%%~F " > nul
101- )
102- )
103-
10476:: Переменные окружения для initdb/psql
10577set " PGDATA = %DATA_DIR% "
10678set " PGCLIENTENCODING = utf-8"
10779set " PGHOST = 127.0.0.1"
10880set " PGLOCALEDIR = %DB_DIR% \share\locale"
10981set " PGSSLMODE = disable"
11082set " PGSYSCONFDIR = %DATA_DIR% "
111- set " PGTZ = {time_zone} "
83+ set " PGTZ = Etc/GMT-3 "
11284set " PGUSER = postgres"
11385
11486:: Назначение порта (если когда-либо понадобится запускать сервер в этом же скрипте)
@@ -129,11 +101,7 @@ if not "!ec!"=="0" (
129101)
130102
131103:: После initdb: у initdb создаются собственные postgresql.conf/pg_hba.conf.
132- :: Если нужно принудительно заменить на наши шаблоны ещё раз — раскомментируйте:
133- :: if exist "%SRC_CONF%" copy /Y "%SRC_CONF%" "%DATA_DIR%\postgresql.conf" >nul
134- :: if exist "%SRC_HBA%" copy /Y "%SRC_HBA%" "%DATA_DIR%\pg_hba.conf" >nul
135- :: и повторите подстановку плейсхолдеров:
136- :: for %%F in ("postgresql.conf" "pg_hba.conf") do ( ... )
104+ del " %DATA_DIR% \pg_hba.conf" " %DATA_DIR% \postgresql.conf"
137105
138106:: Удаляем временный каталог
139107if exist " %TMP_DIR% " rd /s /q " %TMP_DIR% "
0 commit comments