Meridian 1.1.3.0 - database kit / набор базы
=============================================

RU
--
Разворачивает базу Meridian на сервере PostgreSQL 12 и новее. Нужен
PowerShell 7 (pwsh) и psql.exe из поставки PostgreSQL (скрипт находит его
сам в PATH и в C:\Program Files\PostgreSQL\<версия>\bin; свой путь - ключ -Psql).

    pwsh -File db\install\deploy-db.ps1 -DbHost <сервер> -Port 5432 `
         -SuperUser postgres -SuperPassword <пароль postgres> `
         -Database crm_main -AdminPassword <пароль входа в программу>

Демонстрационные данные (прайс-лист, товары, остатки) - добавьте ключ -WithDemo.
Их удаление - db\demo\001_demo_data_rollback.sql через psql на базе.
Повторный запуск безопасен: добавляется только то, чего нет.

Если база уже стоит
-------------------
deploy-db.ps1 ставит с нуля и по существующей базе пройдёт вхолостую - поверх
работающей базы его запускать не надо. Существующая база обновляется скриптом
upgrade-db.ps1 из этого же набора: он читает журнал миграций schema_migration,
применяет только недостающие миграции и наполнение, данные не трогает. В 1.1.3.0
так добавляются английские названия валют - без обновления английский
интерфейс показывает валюты по-русски. Сначала снимите копию базы:

    pg_dump -h <сервер> -U postgres -Fc -f meridian-before-upgrade.dump crm_main

Посмотреть, что будет применено, ничего не меняя, - ключ -DryRun:

    pwsh -File db\install\upgrade-db.ps1 -DbHost <сервер> -Port 5432 `
         -Database crm_main -DryRun

Обновить - та же команда без -DryRun. Скрипт работает под ролью imobile и ищет
psql.exe так же, как deploy-db.ps1 (свой путь - ключ -Psql). База, развёрнутая
набором 1.1.0.0, обновляется тем же скриптом, но в ней переименовываются две
сотни таблиц - такую базу обновляйте вместе с нами, напишите. На рабочие места
ставьте ту же версию программы, что и набор.

Дальше - Meridian-setup.msi на рабочих местах, вход admin / <пароль входа>.
Полное руководство: https://new-imobile.com/download/meridian/README.ru.md

EN
--
Deploys the Meridian database on PostgreSQL 12 or newer. Requires PowerShell 7
(pwsh) and psql.exe from a PostgreSQL distribution (found automatically in PATH
and in C:\Program Files\PostgreSQL\<version>\bin; custom path with -Psql).

    pwsh -File db\install\deploy-db.ps1 -DbHost <server> -Port 5432 `
         -SuperUser postgres -SuperPassword <postgres password> `
         -Database crm_main -AdminPassword <program login password>

Demo data (price list, products, stock) - add the -WithDemo switch.
Removal - db\demo\001_demo_data_rollback.sql via psql against the database.
Re-running is safe: only what is missing gets added.

If a database is already deployed
---------------------------------
deploy-db.ps1 installs from scratch and does nothing on an existing database -
do not run it over a working one. An existing database is brought up to date
with upgrade-db.ps1 from this same kit: it reads the schema_migration log,
applies only the missing migrations and content, and leaves your data alone. In
1.1.3.0 this adds English currency names - without the upgrade the English
interface shows currencies in Russian. Take a backup first:

    pg_dump -h <server> -U postgres -Fc -f meridian-before-upgrade.dump crm_main

To see what would be applied without changing anything, add -DryRun:

    pwsh -File db\install\upgrade-db.ps1 -DbHost <server> -Port 5432 `
         -Database crm_main -DryRun

To upgrade, run the same command without -DryRun. The script works as the
imobile role and finds psql.exe the same way deploy-db.ps1 does (custom path
with -Psql). A database deployed by the 1.1.0.0 kit is upgraded by the same
script, but two hundred tables get renamed there - do that one together with
us, contact us. Install the same program version as the kit on the workstations.

Then install Meridian-setup.msi on the workstations; log in as admin / <login password>.
Full guide: https://new-imobile.com/download/meridian/README.en.md

Files
-----
db\install\deploy-db.ps1            deployment script (pgq.exe or psql.exe)
db\install\upgrade-db.ps1           upgrade of an existing database: missing migrations + content
db\install\lib\pgclient.ps1         shared: client selection, SQL execution
db\install\010_schema.sql           schema
db\install\020_content.sql          content (reference lists, settings, roles, calendar)
db\demo\001_demo_data.sql           demo data
db\demo\001_demo_data_rollback.sql  demo data removal
db\migrations\0NN_*.sql             schema migrations, applied in order by upgrade-db.ps1

Source: Imobile/CRM, branch feature/revive-modules, build 1.1.3.0 (db\install, db\migrations, db\demo).
