Files
pg18-1C_for_deb13/use.md

138 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Подключение PostgreSQL for 1C 18 к проекту Django
Ниже готовый блок для Django под дефолтные значения из вашего `.env`:
- пользователь: `admin_1c`
- пароль: `StrongPassword123!`
- база: `appdb`
- хост: `127.0.0.1`
- порт: `5432`
## Вариант 1. Быстро вставить прямо в `settings.py`
```python
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": "appdb",
"USER": "admin_1c",
"PASSWORD": "StrongPassword123!",
"HOST": "127.0.0.1",
"PORT": "5432",
}
}
```
## Вариант 2. Подтягивать из `.env` через `python-decouple`
Установка:
```bash
pip install python-decouple
```
Пример `.env` проекта Django:
```env
DB_NAME=appdb
DB_USER=admin_1c
DB_PASSWORD=StrongPassword123!
DB_HOST=127.0.0.1
DB_PORT=5432
```
Пример `settings.py`:
```python
from decouple import config
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": config("DB_NAME", default="appdb"),
"USER": config("DB_USER", default="admin_1c"),
"PASSWORD": config("DB_PASSWORD", default="StrongPassword123!"),
"HOST": config("DB_HOST", default="127.0.0.1"),
"PORT": config("DB_PORT", default="5432"),
}
}
```
## Вариант 3. Подтягивать из `.env` без сторонних библиотек
Если переменные окружения уже экспортируются в systemd / docker / shell, можно так:
```python
import os
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": os.getenv("DB_NAME", "appdb"),
"USER": os.getenv("DB_USER", "admin_1c"),
"PASSWORD": os.getenv("DB_PASSWORD", "StrongPassword123!"),
"HOST": os.getenv("DB_HOST", "127.0.0.1"),
"PORT": os.getenv("DB_PORT", "5432"),
}
}
```
## Если хотите использовать значения прямо из вашего серверного `.env`
Обычно лучше не читать серверный `.env` установщика напрямую из Django, а завести отдельные переменные приложения:
```env
DB_NAME=appdb
DB_USER=admin_1c
DB_PASSWORD=StrongPassword123!
DB_HOST=127.0.0.1
DB_PORT=5432
```
Это удобнее, чем тянуть в приложение служебные переменные вроде:
- `REPO_ADD_URL`
- `PGPRO_BIN_DIR`
- `SERVICE_NAME`
- `INSTALL_MODE`
## Проверка подключения
После настройки можно проверить так:
```bash
python manage.py migrate
python manage.py showmigrations
```
Если драйвер PostgreSQL еще не установлен:
```bash
pip install psycopg[binary]
```
Либо классический вариант:
```bash
pip install psycopg2-binary
```
## Рекомендуемый итоговый блок для Django-проекта
```python
from decouple import config
DATABASES = {
"default": {
"ENGINE": "django.db.backends.postgresql",
"NAME": config("DB_NAME", default="appdb"),
"USER": config("DB_USER", default="admin_1c"),
"PASSWORD": config("DB_PASSWORD", default="StrongPassword123!"),
"HOST": config("DB_HOST", default="127.0.0.1"),
"PORT": config("DB_PORT", default="5432"),
"CONN_MAX_AGE": 60,
"OPTIONS": {},
}
}
```