Создание базы данных PostgreSQL
Давайте создадим пользователя базы данных PostgreSQL.
Мы будем использовать интерфейс PostgreSQL на основе терминала - psql.
Чтобы начать использовать psql, необходимо в меню Пуск - Все Приложения найти папку PostgreSQL 15
и запустить SQL Shell (psql):
Введем данные для входа в нашу БД и вы увидите следующий ниже результат:
Введите следующую ниже команду, чтобы создать пользователя, который может создавать базы данных:
CREATE USER blog WITH PASSWORD 'xxxxxx';
Замените xxxxxx на желаемый пароль и выполните команду. Вы увидите такой результат:
CREATE ROLE
Пользователь был создан. Теперь давайте создадим базу данных blog и передадим права на владение этой базой данных только что созданному пользователю.
Исполните следующую ниже команду:
CREATE DATABASE blog OWNER blog ENCODING 'UTF8';
Этой командой мы сообщаем PostgreSQL, что нужно создать базу данных с именем blog, мы передаем право на владение базой данных blog её пользователю, которого мы создали ранее, и указываем, что для новой базы данных должна использоваться кодировка UTF8. Вы увидите следующий ниже результат:
CREATE DATABASE
Мы успешно создали пользователя PostgreSQL и базу данных.
Выгрузка существующих данных
Перед переключением на другую базу данных необходимо выгрузить существующие в проекте Django данные из базы данных SQLite. Мы экспортируем данные, переключаем базу данных проекта на PostgreSQL и импортируем данные в новую базу данных.
Django предлагает простой способ загрузки и выгрузки данных из базы данных в файлы, которые называются фикстурами. Django поддерживает фикстуры в форматах JSON, XML или YAML. Мы собираемся создать фикстуру со всеми данными, содержащимися в базе данных.
Команда dumpdata выгружает данные из базы данных в стандартный вывод, по-умолчанию сериализованный в формате JSON. Результирующая структура данных включает информацию о модели и ее полях, позволяя Django загружать ее в базу данных.
Выгружаемые данные можно ограничивать моделями приложения, предоставив команде имена приложений либо указав отдельные модели для вывода данных, используя формат app.Model. Также можно указывать формат, используя флаг --format.
По умолчанию dumpdata выводит сериализованные данные в стандартный вывод. Однако, используя флаг --output, можно указать выходной файл. Флаг --indent позволяет указывать отступ.
Дополнительную информацию об опциях команды dumpdata можно получить, выполнив команду python manage.py dumpdata --help.
Исполните следующую ниже команду из командной оболочки:
python -Xutf8 manage.py dumpdata --indent=2 --output=mysite_data.json
Вы увидите результат, аналогичный приведенному ниже:
Все существующие данные были экспортированы в формат JSON в новый файл с именем mysite_data.json.
Содержимое файла можно просмотреть, что-бы увидеть структуру JSON, которая включает в себя разнообразные объекты данных различных моделей установленных вами приложений.
В следующем шаге мы переключим базу данных в проекте Django, а затем импортируем данные в новую базу данных.