Accediendo a la base de datos

Estoy intentando acceder a mi base de datos mediante una interfaz gráfica (Psequel).

Reenvié el puerto de mi contenedor de la siguiente manera:

app.yml:

expose:
  <definiciones estándar>
  - "15432:5432" # PostgreSQL

También cambié mi contraseña de la siguiente manera:

./launcher enter app
su - postgres
psql
ALTER ROLE postgres WITH PASSWORD '<tu contraseña>';

Y no puedo acceder a la base de datos. ¿Alguna sugerencia?
1 me gusta

Si solo necesitas una instantánea estática de la base de datos, descarga una copia de seguridad desde https://<sitio>/admin/backups. Debería ser un archivo *.tar.gz y, al descomprimirlo, será un archivo *.sql. Crea una base de datos PostgreSQL en otra máquina, que incluso podría ser tu portátil, y luego importa el archivo *.sql.

Ahora deberías poder acceder a los datos tantas veces como quieras con cualquier método que pueda conectarse a una base de datos PostgreSQL.

Yo uso lo anterior, pero accedo a la base de datos de Discourse en PostgreSQL mediante ODBC.

Espero que te sea útil.

2 Me gusta

¡ok, buena idea!
En realidad, ya lo resolví. También se ejecuta en el puerto 5432 dentro del contenedor.
debiera decir:
expose:
<definiciones estándar>

  • “5432:5432” # PostgreSQL

gracias

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