Перейти к содержимому

Pgadmin 4 как сохранить бд

  • автор:

Резервное копирование и восстановление «1С»-баз на PostgreSQL в Windows с помощью pgAdmin, bat-файлов и планировщика

Автор статьи: технический руководитель проектов внедрения 1С:ERP Внедренческого центра «Раздолье» Дмитрий Малышев.

pgAdmin— это интерфейс для администрирования баз данных PostgreSQL, в моём понимании это аналог MS SQL Management Studio. Ставится pgAdmin отдельно от PostgreSQL. Инструкцию установки найдите, пожалуйста, в интернет поисковиках. В данной инструкции будет описано как с помощью pgAdmin, bat-файлов и Планировщика заданий Windows организовать резервное копирование, восстановление и хранение копий баз данных.

Открытие pgAdmin

Через пуск или в проводнике открываем приложение.

«C:\Program Files\pgAdmin 4\v6\pgAdmin4.ico

«Вводим пароль доступа (за дается ранее пользователем).

Откроется интерфейс управления базами данных.

Создание резервной копии

Рассмотрим создание резервной копии из pgAdmin и командным bat-файлом.

2.1. С помощью pgAdmin

Выбираем базу в дереве, правой кнопкой мыши открываем контекстное меню, где выбираем создание резервной копии/Backup… Указываем полный путь для сохранения копии, формат Custom и жмем [Создать / Create].

2.2. С помощью командного файла *.bat

Запускаем двойным кликом мыши командный файл backup_pdadmin_UH_IMD_everyday.bat, в котором уже прописан вызов архиватора формат и путь файла копии.

Копии сохраняются сюда.

Содержимое командного файла:

REM СОЗДАНИЯ РЕЗЕРВНОЙ КОПИИ БАЗЫ ДАННЫХ POSTGRESQL

REM Установка переменных окружения

REM Формирование имени файла резервной копии и файла-отчета

SET DATETIME=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2% %TIME:~0,2%-%TIME:~3,2%-%TIME:~6,2%

SET DUMPFILE=%PGDATABASE% %DATETIME%.backup

SET LOGFILE=%PGDATABASE% %DATETIME%.log

REM Создание резервной копии

IF NOT EXIST Backup MD Backup

CALL «C:\Program Files\pgAdmin 4\v6\runtime\pg_dump.exe» —format=custom —verbose —file=%DUMPPATH% 2>%LOGPATH%

REM Анализ кода завершения

IF NOT %ERRORLEVEL%==0 GOTO Error

REM В случае ошибки удаляется поврежденная резервная копия и делается соответствующая запись в журнале

MSG * «ERROR to create backup. See the information E:\UH_IMD\Backup\backup.log.»

ECHO %DATETIME% Ошибка при создании резервной копии %DUMPFILE%. Смотрите %LOGFILE%. >> backup.log

REM В случае удачного резервного копирования просто делается запись в журнал

ECHO %DATETIME% Успешное создание резервной копии %DUMPFILE% >> backup.log

SET PGDATABASE=IMD_UH — здесь имя базы данных на СУБД равно IMD_UH, у вас будет свое поменяйте обязательно.

E:\UH_IMD\Backup — здесь путь хранения backup у вас будет свой, поменяйте.

C:\Program Files\pgAdmin 4\v6\runtime — папка утилиты pg_dump.exe для создания дампов, пусть может чуть отличаться, например, вместо v6 будет v4. И не забудьте pgAdmin установить, он ставится отдельно.

SET PGPASSWORD=ЗДЕСЬ_УКАЖИТЕ_ПАРОЛЬ_для_пользователя_postgres — тут укажите реальный пароль от пользователя postgres СУБД PostgreSQL

Восстановление резервной копии

Есть несколько способов: Из командной строки, из pgAdmin, заранее подготовленным командным файлом. Мы рассмотрим: pgAdmin.

3.1. С помощью pgAdmin
3.1.1. В существующую базу

Выбираем базу, вызываем правой кнопкой ее контекстное меню, где выбираем действие Восстановить / Restore.

Далее указываем путь к резервной копии, и в настройках ставим предварительно очищать существующую базу (иначе она не восстановится из-за конфликта таблиц).

3.1.2. В новую базу
3.1.2.1. Создаем новую базу в PostgreSQL

На корне дерева баз вызываем правой кнопкой мыши контекстное меню и действие Создать / Create – Базу данных / Database.

Задаем имя новой базы.

Выбираем обязательно схему создания template0 (иначе на следующем шаге база не развернется из backup из-за конфликта таблиц).

Для контроля смотрим итоговый запрос, и жмем кнопку [Сохранить]/[Save].

3.1.2.2. Восстанавливаем базу из архива в PostgreSQL

После создания пустой новой базы, её нужно восстановить из архива. Для этого смотрите пункт выше 3.1.1. Для восстановления в существующую базу, выполняем всё тоже самое только для базы с именем NewBaseName

3.1.2.3. Создаем новую базу 1С NewBaseName

После того как развернули базу на СУБД PostgreSQL её требуется опубликовать на сервере 1С, чтобы пользователи получили к ней доступ. Для этого выполним действия по созданию базы 1С и связывании её с существующей базой на СУБД.

Не забываем ставь флаг «Установить блокировку регламентных заданий», если это копия.

Удаление старых резервных копий
4.1. Вручную

Удаляем архивы старше 30 дней вручную. Затем чистим корзину на рабочем столе. В проводнике папка E:\UH_IMD\Backup.

4.2. С помощью командного файла *.bat

Запускаем двойным щелчком мыши командный файл. В файле указана очистка в каталоге файлов старше 30 дней.

Его содержимое:forfiles /p «E:\UH_IMD\Backup» /S /D -30 /C «cmd /c del /f /a /q @file»Пояснения:

E:\UH_IMD\Backup — здесь путь хранения backup’ов, у вас будет свое поменяйте обязательно.

30 — срок в днях хранения backup’ов

Автоматическое выполнение резервного копирования

Использован стандартный планировщик заданий Windows каждый день в 5:00 утра запуск, выполнения командного файла (архив рабочей базы примерно 1 час создается).

Автоматическое выполнение очистки копий старше 30 дней

Использован стандартный планировщик заданий Windows каждую субботу в 10:00 утра запуск, выполнения командного файла.

Приложения
Пример содержимого общего файла логов backup.log.
Пример содержимого файла лога конкретной выгрузки UH_IMD 2022-10-07 5-00-00.log

P.S. Коллеги, сразу скажу, что я не системный администратор, а программист 1С. Системщик решил бы, может быть, элегантнее. Хотя ситуация сложилась такая, что я делал настройки и эту инструкцию с bat-никами по просьбе системных администраторов (как бы странно это ни звучало). Нечасто такими настройками занимаюсь, поэтому не судите строго.

Добавил 2 батника, по обновлению статистики и реиндексации:

Они для регламентного обслуживания. 1С завершать для их работы не обязательно, но 1С будет притормаживать или пойдет блокировка на период реиндексации. В планировщик заданий Windows на эти батники добавьте задачи раз в неделю на свои базы, в Нерабочее время.

Также есть служебная база postgres на нее тоже раз в неделю добавьте обслуживание.Файл vacuumdb_BaseName.bat — обновление статистики.

Его содержимое: vacuumdb -d UH_IMD -Z -v -j 1

Пояснения: Обновление статистики базы с именем UH_IMD (тут поставьте свою) в 1 поток.

Можно поменять на обновление статистики во всех базах в 4 потока, тогда будет текст: vacuumdb -a -Z -v -j 4

Файл reindexdb_BaseName.bat — реиндексация таблиц в базе.

Его содержимое: reindexdb -d UH_IMD -v -j 1

Пояснения: Обновление индексов в базе с именем UH_IMD (тут поставьте свою) в 1 поток.

Можно поменять на обновление статистики во всех базах в 4 потока, тогда будет текст: reindexdb -a -v -j 4

Также обратите внимание на программу Effector Saver— программа резервного копирования 1С:Предприятия (поищите в инете). Делает копии в MS и PostgreSQL, настройка хранения и удаления. Есть возможность подключать скрипты и выполнять тестирование исправление 1С. Есть бесплатная версия (которой должно хватить), и есть также платная с плюшками.

Для использования пригодятся следующие материалы:

  • backup_pgadmin_BaseName_everyday.bat
  • delete_backup_BaseName_older than 30 days.bat
  • Резервное копирование и восстановление баз PostgreSQL в Windows с помощью pgAdmin, bat-файлов и планировщика.docx
  • vacuumdb_BaseName.bat
  • reindexdb_BaseName.bat

pgAdmin 4 | Как сохранить данные из отдельной таблицы в Debian?

Это про Linux. Столкнулся с проблемой «Импорта/Экспорта«. Встроенный в pgAdmin 4 инструмент сохраняет файлы в свой «Storage Manager» ПУСТЫМИ ! Файлы, конечно, сохраняются, но данных из таблицы в них нет.

pgAdmin4 в Storage Manager сохраняет пустые файлы через встроенный инструмент

Решение

Можно пойти иным путём и самостоятельно выполнить SQL-запрос при помощи «Запросника» на выделенной таблице. Как это делать?

Шаг 1 — Выделение нужной таблицы

Откройте нужный Сервер через интерфейс pgAdmin 4.

Откройте нужную Базу Данных через интерфейс pgAdmin 4.

Откройте нужную Схему через интерфейс pgAdmin 4.

Выделите нужную Таблицу через интерфейс pgAdmin 4.

pgAdmin4 выделили нужную таблицу в дереве

В нашем случае таблица называется «efim2022db_fio»

Шаг 2 — Вызов Запросника для этой таблицы

Нажимаем правой кнопкой по выделенной таблице и в выпавшем меню выбираем «Запросник«.

pgAdmin4 нажали правой кнопкой по нужной таблице и видим Запросник

Нам откроется пустое окно «Запросника» для выделенной таблицы. В нём нас интересует поле с вкладкой «Query Editor«.

Обратите внимание, что вкладка «Результат» не содержит данных. Это потому что мы ещё не выполнили никакой запрос.

pgAdmin4 пустое окно Запросника выделенной таблицы

Шаг 3 — Получение ВСЕХ данных из этой таблицы при помощи Запросника и SQL-запроса

select * from public."efim2022db_fio"

Можно писать SQL-команды и SQL-предложения с маленькими буквами. Запросник в 2022 уже их понимает и различает.

pgAdmin4 ввели запрос на получение всех данных из таблицы

После написания команды, нужно нажать на кнопку «Выполнения запроса» (Execute/Refresh) или клавиша F5.

pgAdmin4 Запрос выполнится - Таблица загрузилась в интерфейс

Мы увидели все данные нужной таблицы. В нашем случае это 5 строк. Именно их мы и хотим сохранить к себе на сервер.

Шаг 4 — Создаём SQL-запрос на копирование информации в файл

Мы говорим о ОС Debian, поэтому нужно понимать структуру хранения файлов и каталогов в данной ОС.

Ещё важно понимать, что такое пользователи и их права на управление файлами.

Заданный файл должен быть доступен пользователю PostgreSQL (тому пользователю, от имени которого работает сервер), и путь к файлу должен задаваться с точки зрения сервера.

copy public."efim2022db_fio" to '/tmp/test.csv' delimiter ';' csv header;

Мы копируем данные из таблицы в каталог « /tmp » в файл « test.csv «. Каталог « /tmp » присутствует в любой ОС под управлением Linux.

Мы будем получать строки, которые будут отделены друг от друга спец-символами CR LF.

Каждая строка будет иметь внутренние разделения ячеек (столбцов) при помощи разделителя delimiter . У нас это будет точка с запятой для простоты.

Первую строчку с заголовками таблицы мы тоже сохраняем.

pgAdmin4 Добавили вторую строку с SQL-запросом сохранения данных

ВНИМАНИЕ. Мы пока просто вводим этот запрос в Запросник на вторую строку. На всякий случай оставляем первый запрос в Запроснике.

Шаг 5 — Выполняем SQL-запрос на копирование информации в файл

Выделяем второй запрос от начала до конца. Нажимаем кнопку «Выполнения запроса» (Execute/Refresh) или клавиша F5.

pgAdmin4 Выделили только вторую строку в Запроснике

После вызова нас встречает позитивное зелёное уведомление о том что запрос на сохранение файла выполнился успешно.

pgAdmin4 Запрос завершён успешно - Зелёное информационное сообщение

Информация на вкладке «Сообщения» это подтверждает.

pgAdmin4 вкладка Сообщение в Запроснике - Успешное выполнение COPY

Шаг 6 — Находим файл test.csv в Debian

Теперь в терминале Debian можем выполнить команду для просмотра содержимого каталога « /tmp «:

ls /tmp

И мы увидим наш успешно сохранённый файл.

Команда ls tmp в Debian для просмотра каталога временных файлов

Временных файлов может быть много. Не потеряйте свой.

Шаг 7 — Копирование файла test.csv из Debian в свою систему

С этого момента можно подключиться к серверу по ftp через FileZilla и скачать файл с данными из таблицы к себе на ПК или НОУТ.

В разных редакторах информация будет отображена по-разному. Например в Visual Studio Code:

Файл test.csv в редакторе VSC

Этот редактор умный, поэтому он сразу смог прочитать содержимое и представить его в правильном пользовательском варианте.

Редактор Notepad++ никак не преобразовывает информацию, а сразу отображает как есть.

Файл test.csv в редакторе Notepad++

В редакторе Excel отвалилась кодировка:

Файл test.csv в редакторе Excel

Задача выполнена!

Сохранение в обычный текстовый формат

Можно не заморачиваться с csv, а сразу сохранять в текстовый файл txt. Самый обычный.

copy public."efim2022db_fio" to '/tmp/test.txt' delimiter ';';

Мы получим адекватный файл, который будет нормально читаться большинством программ.

Notepad++ корректно отобразил данные из таблицы сохранённой в text формате

Но у нас пропали заголовки столбцов. В целом, это может быть не критично, но всё же.

VSC корректно отобразил данные из таблицы сохранённой в text формате

А вот обычный Блокнот Windows не понял переносы строк. Имейте ввиду. Он для этого не подходит.

Обычный Блокнот Windows не понял переносы строк

Информационные ссылки

Синтаксис SQL-команды SELECT на русском языке — https://postgrespro.ru/docs/postgresql/14/sql-select

Синтаксис SQL-команды COPY на русском языке — https://postgrespro.ru/docs/postgresql/14/sql-copy

Официальный сайт PostgreSQL — https://www.postgresql.org

Графический веб-интерфейс для управления СУБД PostgreSQL — https://www.pgadmin.org

Операционная система Debian — https://www.debian.org

Вам также может понравиться

pgAdmin4 В таблицу efim2022db_fio успешно добавилась строка из файла. Данные обновлены

Опубликовано 30.03.2022

pgAdmin 4 | Как загрузить данные в отдельную таблицу в Debian?

Это про Linux. Столкнулся с проблемой «Импорта/Экспорта«. Встроенный в pgAdmin 4 инструмент загружает файлы в свой «Storage Manager«, но при импорте данных […]

pgAdmin 4 | Развёртывание сервера

Опубликовано 19.03.2022

pgAdmin 4 | Развёртывание сервера

pgAdmin можно переделать в веб-приложение, зашифровав приложение для запуска в режиме сервера, а затем развернув его либо за веб-сервером, работающим как обратный […]

pgAdmin4 включен первичный ключ для первого столбца таблицы

Опубликовано 29.03.2022

pgAdmin 4 | Не добавляется строка в таблицу

Если в pgAdmin4 у вас не получается вручную добавить строку в таблицу, то скорее всего вы не указали «Первичный Ключ» (Primary Key). […]

pgAdmin 4 | Способы развёртывания

Опубликовано 18.03.2022

pgAdmin 4 | Способы развёртывания

Предварительно скомпилированные и настроенные установочные пакеты для pgAdmin 4 доступны для ряда сред рабочего стола; мы рекомендуем использовать программу установки, когда это […]

Можно ли сохранять запросы в pgAdmin?

Есть запросы которые будут использоваться пару раз в виде под запросов, но сохранять их в файлах на компьютере и потом искать и копировать не очень удобно! Как можно сохранять запросы в самом pgAdmin3 и возможно ли это ? Спасибо !

Отслеживать
3,747 2 2 золотых знака 13 13 серебряных знаков 23 23 бронзовых знака
задан 20 мая 2016 в 9:24
1,688 1 1 золотой знак 17 17 серебряных знаков 27 27 бронзовых знаков

как правильно сохранить базу данных в pgAdminIII,чтобы потом ее можно было показать на другом компе??

26 ноя 2017 в 15:25

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Query Tool (вызывается CTRL + E) > Favourites > Add favourite

Если вам потребуется перенести эти запросы на другой компьютер, то они сохраняются в обычном XML файле. Увидеть где он находится можно в File > Options > Query tool > Favourites

Отслеживать
ответ дан 20 мая 2016 в 10:48
4,089 1 1 золотой знак 10 10 серебряных знаков 22 22 бронзовых знака
Столько кнопок. Проще файл найти
20 мая 2016 в 15:58

Сохранить в программе, наверняка, можно, но на мой вкус грамотнее пользоваться функционалом самого Postgres — VIEW . Суть та же, что и сохранение подзапроса в файлик с постоянным ручным копированием, но более точной аналогией будет функция в программировании. Из плюсов: читать запросы проще, файлик может потеряться, VIEW бэкапится вместе со всей базой и его легче поменять.

На примере. Есть таблица users , помимо прочего в ней содержится поле active Boolean . Мы хотим выбрать адреса электропочты активных пользователей. Вариант «в лоб» — select email from users where active , но если наше определение «активности» поменяется (к примеру, заходил на сайт в течение недели), придётся менять код везде и запрос не будет выглядит таким простым, особенно внутри более сложных SELECT ов.

-- чтобы упростить себе жизнь в будущем, создадим представление (VIEW): create view active_users as select * from users where active; -- использовать просто: select email from active_users; 

Пример, конечно, тривиальный, но суть должна быть понятна. Есть ещё MATERIALIZED VIEW , который не только «разворачивает подзапрос», а ещё и хранит результаты в таблице для повышенной производительности (со своими минусами, конечно).

Установка и настройка pgAdmin 4 в режиме сервера

Установка и настройка pgAdmin 4 в режиме сервера

pgAdmin — это платформа с открытым исходным кодом для администрирования и разработки для PostgreSQL и связанных с ней систем управления базами данных. Платформа написана на Python и jQuery и поддерживает все функции PostgreSQL. Вы можете использовать pgAdmin для любых операций, начиная с записи базовых SQL-запросов и заканчивая осуществлением мониторинга ваших баз данных и настройки продвинутых архитектур баз данных.

В этом руководстве мы обсудим процесс установки и настройки последней версии pgAdmin на сервере Ubuntu 18.04, получим доступ к pgAdmin через браузер и подключим платформу к базе данных PostgreSQL на вашем сервере.

Предварительные требования

Для данного курса обучения вам потребуется следующее:

  • Сервер на Ubuntu 18.04. Этот сервер должен иметь пользователя без прав root с привилегиями sudo, а также брандмауэр с ufw . Ознакомьтесь с нашим руководством по первоначальной настройке сервера для Ubuntu 18.04 для получения дополнительных сведений.
  • Веб-сервер Apache, установленный на вашем сервере. Для настройки веб-сервера воспользуйтесь нашим руководством по установке веб-сервера Apache на Ubuntu 18.04.
  • PostgreSQL, установленная на сервере. Вы можете воспользоваться нашим руководством по установке и использованию PostgreSQL на Ubuntu 18.04 для выполнения установки. Перед выполнением инструкций данного руководства создайте новую роль и базу данных, потому что они потребуются вам при подключении pgAdmin к экземпляру PostgreSQL.
  • Python 3 и venv , установленные на сервере. Следуйте указаниям руководства Установка Python 3 и настройка среды для разработки на сервере Ubuntu 18.04, чтобы установить эти инструменты и настроить виртуальную среду.

Шаг 1 — Установка pgAdmin и необходимых зависимостей

На момент написания самой последней версией pgAdmin является pgAdmin 4, хотя самая последняя версия, доступная в репозитории Ubuntu, — это pgAdmin 3. pgAdmin 3 уже не поддерживается, и сопровождающие проект специалисты рекомендуют устанавливать pgAdmin 4. В данном руководстве мы будем рассматривать процесс установки последней версии pgAdmin 4 в виртуальной среде (согласно рекомендациям команды разработки проекта) и установки ее зависимостей с помощью apt .

Для начала обновите индекс пакетов вашего сервера, если вы не делали этого последнее время.

Затем установите следующие зависимости. Список зависимостей включает libgmp3-dev , библиотеку арифметических операций с многократно увеличенной точностью; libpq-dev с файлами заголовков и статической библиотекой, которая помогает осуществлять коммуникации с бекэндом PostgreSQL; и libapache2-mod-wsgi-py3 , модуль Apache, который позволяет вам размещать внутри Apache веб-приложения на Python:

После этого создайте несколько директорий, где pgAdmin будет хранить данные сессий, данные хранилища и журналы:

Затем измените владельца этих директорий на вашего пользователя без прав root и группу. Это необходимо, потому что первоначально они принадлежат вашему root-пользователю, но мы будем устанавливать pgAdmin из виртуальной среды, принадлежащей вашему пользователю без прав root, а процесс установки подразумевает создание ряда файлов внутри этих директорий. После завершения установки мы изменим владельца на пользователя www-data и группу, чтобы директорию можно было использовать через сеть:

Затем откройте вашу виртуальную среду. Перейдите в директорию, в которой находится ваша среда программирования, и активируйте ее. Согласно соглашениям о наименованиях из обязательного руководства Python 3, мы перейдем в директорию environments и активируем среду my_env :

После этого необходимо загрузить исходный код pgAdmin 4 на ваш компьютер. Чтобы получить последнюю версию исходного кода, перейдите на страницу загрузки pgAdmin 4 (Python Wheel) и нажмите ссылку для последней версии (на момент написания это версия 3.4). После этого вы будете перенаправлены на страницу Downloads (Загрузки) на веб-сайте PostgreSQL На этой странице вам необходимо скопировать ссылку на файл, которая заканчивается на .whl , стандартный формат пакетов для дистрибутивов Python. Затем вернитесь в терминал и запустите следующую команду wget , заменив ссылку на ту, которую вы скопировали на сайте PostgreSQL, для загрузки файла .whl на ваш сервер:

Далее установите пакет wheel , базовую реализацию стандарта пакетов wheel. Будучи библиотекой Python, данный пакет служит расширением для сборки пакетов wheel и содержит инструмент для работы с командной строкой, который позволяет выполнять различные действия с файлами .whl :

Затем установите пакет pgAdmin 4 с помощью следующей команды:

Она отвечает за установку pgAdmin и его зависимостей. Прежде чем подключаться к вашей базе данных, необходимо внести несколько изменений в настройку программы.

Шаг 2 — Настройка pgAdmin 4

Хотя pgAdmin был установлен на сервере, осталось несколько шагов, которые нужно выполнить, чтобы гарантировать, что в наличии все разрешения и конфигурации, необходимые для правильной работы с веб-интерфейсом.

Основной файл конфигурации pgAdmin с именем config.py считывается перед любым другим файлом конфигурации. Его содержание можно использовать в качестве отправной точки для последующих настроек конфигурации, которые можно указать в других файлах конфигурации pgAdmin, но чтобы избежать непредвиденных ошибок, вы не должны редактировать файл config.py самостоятельно. Мы внесем некоторые изменения конфигурации в новый файл с именем config_local.py , который будет считываться непосредственно после основного файла.

Создайте этот файл сейчас, используя текстовый редактор. Мы будем использовать nano :

В вашем редакторе добавьте следующее содержание:

environments/my_env/lib/python3.6/site-packages/pgadmin4/config_local.py

LOG_FILE = '/var/log/pgadmin4/pgadmin4.log' SQLITE_PATH = '/var/lib/pgadmin4/pgadmin4.db' SESSION_DB_PATH = '/var/lib/pgadmin4/sessions' STORAGE_DIR = '/var/lib/pgadmin4/storage' SERVER_MODE = True 

Вот что делают эти пять директив:

  • LOG_FILE : данная директива определяет файл, в котором будут храниться журналы pgAdmin.
  • SQLITE_PATH : pgAdmin хранит данные о пользователях в базе данных SQLite, и эта директива указывает программному обеспечению PgAdmin на базу данных конфигурации. Поскольку этот файл находится в постоянной директории /var/lib/pgadmin4 , ваши пользовательские данные после обновления не будут потеряны.
  • SESSION_DB_PATH : указывает, какая директория будет использоваться для хранения данных сеанса.
  • STORAGE_DIR : определяет, где pgAdmin будет хранить другие данные, например резервные копии и сертификаты безопасности.
  • SERVER_MODE : установка значения True для этой директивы говорит о том, что pgAdmin должен запускаться в режиме сервера, а не в режиме настольного компьютера.

Обратите внимание, что каждый из этих путей файла указывает на директории, созданные на шаге 1.

После добавления этих строк сохраните и закройте файл (нажмите CTRL + X , а затем нажмите Y и ENTER ). После внесения этих изменений запустите скрипт установки pgAdmin, чтобы задать учетные данные для входа:

После запуска этой команды вы увидите запрос на ввод адреса электронной почты и пароля. Они будут служить вашими учетными данными для последующего доступа к pgAdmin, обязательно запомните их или запишите:

Output
. . . Enter the email address and password to use for the initial pgAdmin user account: Email address: sammy@example.com Password: Retype password:

После этого необходимо деактивировать вашу виртуальную среду:

Воспользуйтесь путями файла, которые вы указали в файле config_local.py . Эти файлы хранятся в директориях, созданных на шаге 1, которые в настоящее время принадлежат вашему пользователю без прав root. Однако они должны быть доступны для пользователя и группы, которые запускают ваш веб-сервер. По умолчанию в Ubuntu 18.04 это пользователь и группа www-data, поэтому необходимо обновить разрешения для следующих директорий, чтобы предоставить www-data нужные права владения:

После этого настройку pgAdmin можно считать выполненной. Однако программа еще не обслуживается на вашем сервере, поэтому она остается недоступной. Для устранения данной проблемы мы настроим Apache для обслуживания pgAdmin, чтобы вы могли получить доступ к интерфейсу пользователя через браузер.

Шаг 3 — Настройка Apache

Веб-сервер Apache использует виртуальные хосты для инкапсуляции данных конфигурации и размещения сразу нескольких доменов на одном сервере. Если вы выполнили указания предварительного руководства для Apache, у вас уже может быть настроен пример виртуального хоста с именем your_domain.conf , но на этом шаге мы создадим новый хост, откуда мы сможем обслуживать веб-интерфейс pgAdmin.

Сначала убедитесь, что вы находитесь в директории root:

Затем создайте новый файл в вашей директории /sites-available/ с именем pgadmin4.conf . Это будет файл виртуального хоста вашего сервера:

Добавьте следующее содержимое в файл, заменив выделенные части в соответствии с вашей собственной конфигурацией:

/etc/apache2/sites-available/pgadmin4.conf

 ServerName your_server_ip WSGIDaemonProcess pgadmin processes=1 threads=25 python-home=/home/sammy/environments/my_env WSGIScriptAlias / /home/sammy/environments/my_env/lib/python3.6/site-packages/pgadmin4/pgAdmin4.wsgi sammy/environments/my_env/lib/python3.6/site-packages/pgadmin4/"> WSGIProcessGroup pgadmin WSGIApplicationGroup % Require all granted  

Сохраните и закройте файл виртуального хоста. Затем воспользуйтесь скриптом a2dissite для отключения файла виртуального хоста по умолчанию, 000-default.conf :

Примечание: если вы выполнили требования предварительного руководства Apache, вы должны были отключить 000-default.conf и настроить пример файла конфигурации виртуального хоста (с именем your_domain.conf согласно требованиям). В этом случае вам нужно будет отключить файл виртуального хоста your_domain.conf с помощью следующей команды:

Затем воспользуйтесь скриптом a2ensite , чтобы активировать ваш файл виртуального хоста pgadmin4.conf . В результате будет создана символьная ссылка из файла виртуального хоста в директории /sites-available/ в директорию /sites-enabled/ :

После этого проверьте на правильность синтаксис вашего файла конфигурации:

Если файл конфигурации в порядке, вы увидите сообщение Syntax OK . Если вы увидите ошибку в результатах, снова откройте файл pgadmin4.conf и повторно проверьте, что ваш IP-адрес и пути файлов корректны, после чего запустите configtest .

После появления вывода Syntax OK перезапустите службу Apache, чтобы она смогла прочитать ваш новый файл виртуального хоста:

pgAdmin теперь полностью установлен и настроен. Теперь мы перейдем к тому, как организовать доступ к pgAdmin из браузера, прежде чем подключать его к базе данных PostgreSQL.

Шаг 4 — Доступ к pgAdmin

На вашем локальном компьютере откройте предпочитаемый браузер и откройте IP-адрес вашего сервера:

http://your_server_ip 

После этого вы увидите экран входа, аналогичный следующему экрану:

Экран входа pgAdmin

Введите учетные данные для входа, заданные на шаге 2, после чего вы попадете на приветственный экран pgAdmin:

Страница приветствия pgAdmin

Теперь, когда вы выполнили настройку, вы можете получить доступ к интерфейсу pgAdmin, и вам осталось только подключить pgAdmin к базе данных PostgreSQL. Прежде чем сделать это, вам нужно будет внести одно небольшое изменение в конфигурацию суперпользователя PostgreSQL.

Шаг 5 — Настройка вашего пользователя PostgreSQL

Если вы выполнили указания предварительного руководства PostgreSQL, вы уже должны были установить PostgreSQL на ваш сервер с правами суперпользователя и настроенной базой данных.

По умолчанию в PostgreSQL вы выполняете аутентификацию пользователей базы данных с помощью “протокола идентификации” (или ident), т. е. метода аутентификации. В рамках этого процесса PostgreSQL берет имя пользователя клиента Ubuntu и использует его в качестве разрешенного пользователя базы данных. Это позволяет обеспечить более высокий уровень безопасности во многих случаях, но также может стать причиной проблем в случаях, когда вам может потребоваться подключить внешнюю программу, например, pgAdmin, к вашей базе данных. Для устранения этой проблемы мы зададим пароль для данной роли PostgreSQL, который позволит pgAdmin подключиться к вашей базе данных.

В вашем терминале откройте командную строку PostgreSQL с помощью вашего суперпользователя:

Из командной строки PostgreSQL обновите профиль пользователя, чтобы задать более надежный пароль:

Закройте командную строку PostgreSQL:

Теперь вернитесь в интерфейс pgAdmin 4 в вашем браузере и найдите меню Browser (Браузер) с левой стороны. Нажмите правой кнопкой мыши на пункт Servers (Серверы), чтобы открыть контекстное меню, наведите курсор мыши на пункт Create (Создать) и нажмите Server… (Сервер…).

Контекстное меню создания сервера

В результате в браузере появится окно, в котором вы должны ввести информацию о вашем сервере, роли и базе данных.

На вкладке General (Общее) введите имя этого сервера. Это может быть любое имя по вашему желанию, но вы можете использовать описательное имя. В нашем примере сервер называется Sammy-server-1 .

Создание сервера — вкладка General

Затем нажмите на вкладку Connection (Подключение). В поле Host name/address (Имя хоста/адрес) введите localhost . В поле Port (Порт) необходимо задать значение 5432 по умолчанию, которое будет работать для этой настройки, поскольку это порт, используемый для PostgreSQL по умолчанию.

В поле Maintenance database (Поддержание базы данных) введите имя базы данных, к которой вы хотите подключиться. Обратите внимание, что эта база данных должна быть уже создана на вашем сервере. Затем введите имя пользователя и пароль PostgreSQL, которые вы настроили ранее в полях Username (Имя пользователя) и Password (Пароль).

Создание сервера — вкладка Connection

Пустые поля в других вкладках являются опциональными, их необходимо заполнять, если у вас есть конкретные требования для установки, где они могут потребоваться. Нажмите кнопку Save (Сохранить), после чего база данных появится в списке Servers (Серверы) в меню Browser (Браузер).

Вы успешно подключили pgAdmin4 к базе данных PostgreSQL. С помощью панели управления pgAdmin вы можете делать все, что вы можете делать с помощью командной строки PostgreSQL. Для иллюстрации этого факты мы создадим пример таблицы и заполним ее с помощью примера данных через веб-интерфейс.

Шаг 6 — Создание таблицы в панели pgAdmin

В панели управления pgAdmin найдите меню Browser (Браузер) с левой стороны окна. Нажмите на значок плюс (+) рядом с пунктом Servers (Серверы), чтобы развернуть дерево меню внутри. Далее нажмите значок плюс слева от сервера, добавленного на предыдущем шаге (Sammy-server-1 в нашем примере), затем разверните пункт Databases (Базы данных), имя базы данных, добавленной вами (sammy в нашем примере), а затем Schemas (1) (Схемы (1)). Вы должны увидеть следующее дерево меню:

Развернутое дерево меню Browser

Нажмите правой кнопкой на пункт списка Tables (Таблицы), затем наведите курсор на пункт Create (Создать) и нажмите Table…(Таблица…).

Контекстное меню создания таблицы

В результате будет открыто окно Create-Table (Создать — Таблица). На вкладке General (Общее) этого окна введите имя таблицы. Это может быть любое имя, но чтобы не усложнять, мы назовем ее table-01.

Создание таблицы — вкладка General

Перейдите на вкладку Columns (Столбцы) и нажмите знак + в правом верхнем углу окна, чтобы добавить столбцы. При добавлении столбца вам нужно указать его Name (Имя) и Data type (Тип данных), после чего вам может потребоваться указать параметр Length (Длина), если это требуется для типа данных, который вы выбрали.

Кроме того, в официальной документации PostgreSQL указано, что добавление главного ключа в таблицу является рекомендованной практикой. Главный ключ — это препятствие, указывающее конкретный столбец или набор столбцов, которые можно использовать в качестве специального идентификатора для строк в таблице. Это не обязательное требование, но если вы хотите задать один или несколько столбцов в качестве главного ключа, переведите переключатель с правого края из положения No (Нет) в положение Yes (Да).

Нажмите кнопку Save (Сохранить) для создания таблицы.

Создание таблицы — вкладка столбцов с включенным главным ключом

К этому моменту вы создали таблицу и добавили несколько столбцов. Однако столбцы не содержат данных. Для добавления данных в вашу новую таблицу нажмите правой кнопкой мыши на имя таблицы в меню Browser (Браузер), наведите курсор на пункт Scripts (Скрипты) и нажмите INSERT Script (ВСТАВИТЬ скрипт).

Контекстное меню INSERT Script

В результате будет открыта новая панель на панели управления. В самом верху вы увидите частично выполненная конструкция INSERT (ВСТАВКА) с соответствующими названиями таблицы и столбцов. Теперь необходимо заменить знаки вопроса (?) на любые данные, убедившись, что данные, которые вы добавляете, соответствуют типам данных, которые вы выбрали для каждого столбца. Обратите внимание, что вы можете добавить несколько строк данных, помещая каждую строку внутри набора скобок и разделяя скобки запятыми, как показано в следующем примере.

При желании вы можете заменить частично выполненный скрипт INSERT на следующий пример конструкции INSERT :

INSERT INTO public."table-01"( col1, col2, col3) VALUES ('Juneau', 14, 337), ('Bismark', 90, 2334), ('Lansing', 51, 556); 

Пример конструкции INSERT

Нажмите значок молнии () для запуска выполнения конструкции INSERT . Чтобы просмотреть таблицу и все данные внутри ее, снова нажмите правой кнопкой мыши на имени таблицы в меню Browser (Браузер), наведите курсор на View/Edit Data (Просмотр/редактирование данных) и выберите All Rows​​​ (Все ряды).

Контекстное меню просмотра/редактирования данных, все ряды

В результате будет открыта новая панель, ниже которой, на вкладке Data Output (Вывод данных) нижней панели вы можете просмотреть все данные, хранящиеся в таблице.

Просмотр данных - пример вывода данных

Поздравляем, вы успешно создали таблицу и заполнили ее данными с помощью веб-интерфейса pgAdmin. Разумеется, это только один из методов, которые вы можете использовать для создания таблицы с помощью pgAdmin. Например, вы можете также создать и заполнить таблицу с помощью SQL вместо метода, подразумевающего использование графического интерфейса, описанного на этом шаге.

Заключение

В этом руководстве вы научились устанавливать pgAdmin 4 из виртуальной среды Python, настраивать эту платформу, выполнять подключение к веб-серверу Apache и узнали, как подключить ее к базе данных PostgreSQL. Кроме того, в этом руководстве описан один метод, который можно использовать для создания и заполнения таблицы, но pgAdmin можно использовать далеко не только для создания и редактирования таблиц.

Дополнительную информацию о том, как получить максимум от всех функций pgAdmin см. в документации проекта. Также вы можете узнать больше о PostgreSQL, ознакомившись с руководствами сообщества по этой теме.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *