Я пытаюсь получить доступ к своей базе данных через графический интерфейс (Psequel).
Я пробросил порт контейнера следующим образом:
app.yml:
expose:
<стандартные определения>
- "15432:5432" # PostgreSQL
Также я изменил пароль следующим образом:
./launcher enter app
su - postgres
psql
ALTER ROLE postgres WITH PASSWORD '<ваш пароль>';
Но я не могу получить доступ к базе данных. Есть какие-либо предложения?
Если вам нужен только статический снимок базы данных, скачайте резервную копию с https:///admin/backups. Это должен быть файл с расширением *.tar.gz, который после распаковки станет файлом *.sql. Создайте базу данных PostgreSQL на другом компьютере (это может быть даже ваш ноутбук), а затем импортируйте файл *.sql.
Теперь вы сможете получать доступ к данным любым способом, который поддерживает подключение к базе данных PostgreSQL.
Я использую описанный выше метод, но обращаюсь к базе данных Discourse в PostgreSQL через ODBC.
Хотел бы ещё раз уточнить у вас, пожалуйста. Когда я экспортирую dump.sql в базу данных PostgreSQL, у меня получаются пустые таблицы. Не совсем понятно, почему. Вот шаги, которые я выполняю после загрузки файла резервной копии:
Открыть pgAdmin
Создать новую базу данных
Открыть инструмент запросов (Query Tool)
В инструменте запросов выбрать «Открыть» и указать файл dump.sql
Выполнить скрипт дампа
Сообщается, что всё прошло успешно, но при просмотре данных в таблицах они оказываются пустыми.
Кроме того, возможно, это связано с особенностями управления экземпляром, но кажется, что таблица users также не включена, а она мне нужна, чтобы знать, кто что делал.
Через административную страницу https://<сайт>/admin/backup запросил загрузку и выполнил все шаги: было несколько этапов, включая проверку через электронную почту и скачивание файла.
Скачанный файл имел расширение gz, например abc-2025-01-23-095947-v20250122131007.sql.gz. В Windows я распаковал его с помощью 7-zip, что создало директорию с тем же именем, но без .gz в конце.
В той же командной строке использовал команду type, чтобы вывести начало SQL-файла.
type <файл> /a | more
C:\Users\Groot\Downloads\abc-2025-01-23-095947-v20250122131007.sql>type "abc-2025-01-23-095947-v20250122131007.sql" /a | more
abc-2025-01-23-095947-v20250122131007.sql
--
-- PostgreSQL database dump
--
-- Dumped from database version 15.8 (Debian 15.8-1.pgdg110+1)
-- Dumped by pg_dump version 15.10 (Debian 15.10-1.pgdg120+1)
-- Started on 2025-01-23 09:59:47 UTC
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
Надеюсь, это поможет вам использовать SQL-файл в PGAdmin для импорта данных.
NB
Когда я писал об этом примерно 5 лет назад, тип скачиваемого файла был tar.gz, сейчас — sql.gz. Единственное отличие в том, что теперь требуется на один шаг распаковки меньше.
Большое спасибо за помощь! Я выполнил все те же шаги (плюс один дополнительный, так как мой файл всё ещё имеет расширение .tar.gz). Я получил тот же результат с SQL-файлом:
--
-- PostgreSQL database dump
--
.........
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';
Однако проблема в том, что когда я использую PgAdmin для получения данных, все таблицы пусты, а таблица Users вообще отсутствует.
Извините, но я не могу помочь с PgAdmin. Я не использую PgAdmin, и мне пришлось бы его установить, чтобы попробовать. Установка PgAdmin — это шаг, который я не хочу предпринимать.
Единственный раз, когда я обращался к экспортированной базе данных Discourse, я установил PostgreSQL и odbc-postgresql, а затем использовал iusql, как указано здесь.
Огромное спасибо за вашу помощь! Я очень это ценю. Оказалось, что я пытался использовать последнюю версию PostgreSQL, в то время как файл dump.sql был из предыдущей версии. Я понял это, когда пытался следовать руководству, которое вы использовали. Спасибо!