Загрузить файлы в «/»
This commit is contained in:
137
use.md
Normal file
137
use.md
Normal file
@@ -0,0 +1,137 @@
|
|||||||
|
# Подключение 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": {},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user