Accediendo a la base de datos

I am trying to access my database via a GUI (Psequel).

I forwarded the port setting from my container as such:

app.yml:

expose:
  <standard definitions>
  - "15432:5432" # PostgreSQL

Also changed my password as such:

./launcher enter app
su - postgres
psql
ALTER ROLE postgres WITH PASSWORD '<your password>';

And I am unable to access the database. Any suggestions?
1 me gusta

If you only need a static snap shot of the database then from https://<site>/admin/backups download a backup. It should be a *.tar.gz file and when uncompressed will be a *.sql file. Create a PostgreSQL database on another machine, which could even be your laptop, and then import the *.sql file.

Now you should be able to access the data all you want with any means that can connect to a PostgreSQL database.

I use the above but access the Discourse database in PostgreSQL via ODBC.

HTH

2 Me gusta

ok good idea.
Actually I figured it out. It runs on port 5432 also in the container.
it should read:
expose:

  • “5432:5432” # PostgreSQL

thanks

6 Me gusta

Hola a todos,

Puedo acceder a mi base de datos postgres a través de pgadmin siguiendo estos pasos:

  • Elimine el código del puerto de exposición de su archivo app.yml y reconstruya la aplicación.
  • Vaya a su portal de administración de servidores (es decir, Digital Ocean, AWS, etc.). Cree una regla de firewall que abra el puerto 5432.
  • Usando la pestaña SSH de pgadmin: inicie sesión en su servidor utilizando la dirección y las credenciales del servidor.

Avísenme si esto les funciona.

Saludos cordiales,
Kimberly

@EricGT ¡Nunca lo había pensado! ¡¡Gracias!! :slight_smile:

1 me gusta

¡Hola!

Quería confirmar contigo, por favor. Cuando exporto el dump.sql a una base de datos postgresql, termino con tablas vacías. No está claro por qué. Estos son los pasos que sigo después de descargar el archivo de copia de seguridad:

  1. Abrir pgAdmin
  2. Crear una nueva base de datos
  3. Abrir la herramienta de consulta
  4. Usar ‘Abrir’ en la herramienta de consulta y seleccionar el archivo dump.sql
  5. Ejecutar el script de volcado

Dice que todo fue exitoso, pero cuando ‘veo los datos’ en las tablas, están vacías.

Además, probablemente sea cómo se gestiona la instancia, pero parece que la tabla de usuarios tampoco está incluida, pero necesito esa tabla para saber quién hizo qué.

¿Me he perdido algo aquí? ¡Gracias!

¿Cuál es el tamaño de dump.sql? Debería ser considerable (unos pocos MB como mínimo). ¿Puedes echar un vistazo dentro del archivo? por ejemplo:

$ zgrep -i "CREATE TABLE public.users" dump.sql.gz
# la salida debería ser
> CREATE TABLE public.users (

Si no ves esto, el volcado parece incorrecto.

Además, si compartes los pasos sobre cómo estás exportando el volcado o pegas tu salida de consola aquí, podremos entender mejor tu problema.

1 me gusta

¡Muchas gracias! :slight_smile:

¡6.34 GB!

La imagen muestra una línea de código SQL en una terminal, intentando usar un archivo llamado "dump.sql" para expresar una declaración CREATE TABLE. (Subtitulado por IA)

Para descargar el volcado, seguí los pasos sugeridos anteriormente por @EricGT:

Después de eso seguí estos pasos:

Y luego, cuando quiero ver los datos, muestra:

Acabo de rehacer esto para comprobar.

  1. Usando la página de administración https:///admin/backup solicité una descarga y seguí los pasos, hubo varios pasos que incluyeron verificación a través de un correo electrónico y la descarga de un archivo.
  2. El archivo descargado fue un archivo gz por ejemplo abc-2025-01-23-095947-v20250122131007.sql.gz. En Windows descomprimí el archivo usando 7-zip lo que creó un directorio con el mismo nombre menos el .gz al final.
C:\Users\Groot\Downloads>dir *.sql.gz
23/01/2025  05:04 AM       407,213,170 abc-2025-01-23-095947-v20250122131007.sql.gz

C:\Users\Groot\Downloads>dir *.sql

23/01/2025  05:04 AM    <DIR>          abc-2025-01-23-095947-v20250122131007.sql
  1. Usando un símbolo del sistema de Windows abierto en el directorio con el archivo sql para verificar que el archivo sql existe
C:\Users\Groot\Downloads\abc-2025-01-23-095947-v20250122131007.sql>dir

23/01/2025  05:04 AM     1,572,346,154 abc-2025-01-23-095947-v20250122131007.sql
               1 Archivo(s)      1,572,346,154 bytes
  1. Usando el mismo símbolo del sistema de Windows para escribir el comando para listar el inicio del archivo 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';

Espero que esto te lleve al punto en que puedas usar el archivo SQL con PGAdmin para importar los datos.


PD

Cuando publiqué sobre esto hace ~5 años, el tipo de archivo descargado era tar.gz, ahora es sql.gz. La única diferencia es que ahora se necesita un paso menos de descompresión.

2 Me gusta

Hola @EricGT

¡Muchas gracias por tu ayuda! Seguí todos los mismos pasos (con uno adicional ya que mi archivo todavía tiene tar.gz). Llegué al mismo resultado con el archivo sql:

--
-- PostgreSQL database dump
--
.........
SET statement_timeout = 0;
SET lock_timeout = 0;
SET idle_in_transaction_session_timeout = 0;
SET client_encoding = 'UTF8';

Sin embargo, el problema es que cuando uso PgAdmin para obtener los datos, todas las tablas están vacías y la tabla Users simplemente falta.

Lo siento, no puedo ayudarte con PgAdmin. No uso PgAdmin y tendría que instalarlo para intentarlo. Instalar PgAdmin no es un paso que me interese dar.

La única vez que accedí a una base de datos exportada de Discourse fue para instalar PostgreSQL, odbc-postgresql y usar iusql como se indica aquí.

1 me gusta

¡Muchas gracias por toda tu ayuda! Realmente lo aprecio. Resulta que estaba intentando usar la última versión de postgresql mientras que dump.sql era de una versión anterior. Descubrí esto mientras intentaba seguir la guía que usaste. ¡Gracias!

1 me gusta