Подключение PostgreSQL
Подключение PostgreSQL, если в текущей базе нет данных
Чтобы использовать PostgreSQL в качестве базы данных, необходимо в файл conf.json добавить следующий блок:
"database": {
"account": {
"user": "db-user",
"password": "user-password",
"database": "db-name",
"port": 5432,
"host": "yourhost"
},
"company": {
"master": {
"user": "db-user",
"password": "user-password",
"database": "db-name",
"port": 5432,
"host": "yourhost"
}
},
"userEvents": {
"master": {
"user": "db-user",
"password": "user-password",
"database": "db-name",
"port": 5432,
"host": "yourhost"
}
}
},
user
- Имя пользователя PostgreSQL, от имени которого будет происходить подключение.password
- Пароль пользователя для подключения к базе данных.database
- Название базы данных, к которой должно быть установлено подключение.port
- Порт PostgreSQL.host
- адрес PostgreSQL.
Подключение PostgreSQL, если в текущей базе уже есть данные (миграция существущей базы в PostgreSQL)
Предварительная подготовка:
- Установить nodejs v20.11
- В нужной директории выполнить и установить дополнительные пакеты:
npm init -y
npm install pg big-json - Если PostgreSQL-пользователь доступен под обычным пользователем,
sudo
не требуется. При запуске сsudo
возможны ошибки, если нет соответствующих~/.npm
и прав на чтение.
Важно: при использовании управления пользователями через файл необходимо сделать бэкап и директории database
, и самого файла users.csv
.
Миграция данных
- Остановить коробку
- Перейти в каталог tasks/db
- В каталогах migrate-storage-to-db и migrate-user-events-to-db переименовать и заполнить файл example.conf.json в conf.json
- В migrate-storage-to-db/conf.json параметр storage - это путь до каталога companies (как правило, /opt/yougile/database/companies)
- В migrate-user-events-to-db/conf.json параметр storage - это путь до каталога user-events (как правило, /opt/yougile/database/user-events)
- В каждом каталоге (migrate-storage-to-db и migrate-user-events-to-db) нужно выполнить команду
node index.mjs
- Добавить в основной файл conf.json, который лежит в корневом каталоге yougile следующий блок:
"database": {
"account": {
"user": "db-user",
"password": "user-password",
"database": "db-name",
"port": 5432,
"host": "yourhost"
},
"company": {
"master": {
"user": "db-user",
"password": "user-password",
"database": "db-name",
"port": 5432,
"host": "yourhost"
}
},
"userEvents": {
"master": {
"user": "db-user",
"password": "user-password",
"database": "db-name",
"port": 5432,
"host": "yourhost"
}
}
},
user
- Имя пользователя PostgreSQL, от имени которого будет происходить подключение.password
- Пароль пользователя для подключения к базе данных.database
- Название базы данных, к которой должно быть установлено подключение.port
- Порт PostgreSQL.host
- адрес PostgreSQL.
Примечание: host
рекомендуется указывать как "localhost"
, если база данных находится на том же сервере, где yougile, или же как адрес хоста "yourhost"
, если база данных находится на другом сервере.