From e900bd4c828608e79606d9667dc0275cd947c00b Mon Sep 17 00:00:00 2001 From: Crimson Date: Wed, 25 Mar 2026 10:15:53 +0000 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20=D1=84=D0=B0=D0=B9=D0=BB=D1=8B=20=D0=B2=20=C2=AB?= =?UTF-8?q?/=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- use.md | 137 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 use.md diff --git a/use.md b/use.md new file mode 100644 index 0000000..75e5abe --- /dev/null +++ b/use.md @@ -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": {}, + } +} +```