Как правильно поделиться информацией о базе данных в Github, используя Django и PostgreSQL?

У меня есть задание, в котором мне нужно настроить сервер базы данных, используя Python Django и PostgreSQL. Мне нужно разместить проект на Github, и оценщик будет использовать мой репозиторий для проверки моего проекта.

В моем файле setting.py у меня есть следующие строки:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'CourseDB',
        'USER': 'postgres',
        'PASSWORD': '123',
        'HOST': 'localhost',
        'PORT': '5432'
    }
}

Что нужно сделать, чтобы данные в моем файле были правильными для стороны грейдера?

Нужно ли им будет создать базу данных с заданным именем, пользователем и паролем, как в моем файле?

Я думаю, что, возможно, для имени базы данных я могу добавить в readme, чтобы сначала запустить CREATE DATABASE CourseDB. Но опять же, я не знаю их пользователя и пароль на их машине, поэтому я не знаю, что должно быть написано в моем файле, чтобы мой код работал на их машине.

Я следовал этому уроку на YouTube, чтобы создать свой файл.

Если вам не нужна какая-то специфическая функциональность Postgres, вы можете использовать стандартный бэкенд SQLite:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': BASE_DIR / 'db.sqlite3',
    }
}

Django автоматически создаст файл базы данных. Настройка/пользователь/пароль не требуются.

В общем, хорошей практикой является сохранение всех учетных данных, чувствительных к БД, в settings.py с помощью env vars, таких как следующие:

import os

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': os.environ['DATABASE_NAME'],
        'USER': os.environ['DATABASE_USER'],
        'PASSWORD': os.environ['DATABASE_PASSWORD'],
        'HOST': os.environ['DATABASE_HOST'],
        'PORT': os.environ['DATABASE_PORT'],
    }
}

В качестве встроенной поддержки поддерживаются несколько СУБД (см. официальную документацию здесь), включая PostgreSQL, MariaDB, MySQL, Oracle и SQLite, а также ряд дополнительных, предоставляемых сторонними разработчиками.

Если вы выбираете бэкенд SQLite (безусловно, лучшая альтернатива для быстрой разработки и MVP), имейте в виду, что есть некоторые отличия, характерные для бэкенда SQLite, которые вы должны принять во внимание (например, не поддерживаемые функции)

Вернуться на верх