Загрузить файлы в «/»
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