Accesso al Database

Sto cercando di accedere al mio database tramite un’interfaccia grafica (Psequel).

Ho inoltrato la porta dal mio container nel seguente modo:

app.yml:

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

Ho anche modificato la mia password nel seguente modo:

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

Non riesco comunque ad accedere al database. Qualche suggerimento?

Se ti serve solo un’istantanea statica del database, scarica un backup da https:///admin/backups. Dovrebbe essere un file *.tar.gz e, una volta decompresso, diventerà un file *.sql. Crea un database PostgreSQL su un’altra macchina, che potrebbe anche essere il tuo laptop, e poi importa il file *.sql.

Ora dovresti essere in grado di accedere ai dati quanto vuoi con qualsiasi metodo in grado di connettersi a un database PostgreSQL.

Io uso il metodo sopra descritto, ma accedo al database Discourse in PostgreSQL tramite ODBC.

Spero ti sia utile.

Ok, buona idea.
In realtà l’ho capito. Funziona sulla porta 5432 anche nel container.
Dovrebbe essere:
expose:

  • “5432:5432” # PostgreSQL

grazie

Ciao a tutti,

Sono in grado di accedere al mio database postgres tramite pgadmin seguendo questi passaggi:

  • Rimuovere il codice di expose port dal file app.yml e ricompilare l’app.
  • Accedere al portale di gestione del server (ad es. Digital Ocean, AWS, ecc.). Creare una regola firewall che apra la porta 5432.
  • Utilizzando la scheda SSH di pgadmin: accedere al server utilizzando l’indirizzo e le credenziali del server.

Fatemi sapere se funziona per voi.

Cordiali saluti,
Kimberly

@EricGT non ci avevo mai pensato! Grazie!! :slight_smile:

Ciao!

Volevo ricontrollare con te, per favore. Quando esporto il dump.sql in un database postgresql, mi ritrovo con tabelle vuote. Non è chiaro il perché. Ecco i passaggi che seguo dopo aver scaricato il file di backup:

  1. Apri pgAdmin
  2. Crea un nuovo database
  3. Apri Query Tool
  4. Usa ‘Apri’ in Query Tool e seleziona il file dump.sql
  5. Esegui lo script di dump

Dice che tutto è andato a buon fine, ma quando faccio ‘visualizza dati’ nelle tabelle, sono vuote.

Inoltre, probabilmente è gestito dall’istanza, ma sembra che la tabella degli utenti non sia inclusa, ma ho bisogno di quella tabella per sapere chi ha fatto cosa.

Mi è sfuggito qualcosa qui? Grazie!

Qual è la dimensione di dump.sql? Dovrebbe essere di dimensioni considerevoli (almeno qualche MB). Puoi dare un’occhiata all’interno del file? Ad esempio:

$ zgrep -i "CREATE TABLE public.users" dump.sql.gz
# l'output dovrebbe essere
> CREATE TABLE public.users (

Se non vedi questo, il dump sembra sbagliato.

Inoltre, se condividi i passaggi su come stai esportando il dump o incolli qui l’output della tua console, possiamo capire meglio il tuo problema.

Grazie mille! :slight_smile:

6,34 GB!

L'immagine mostra una riga di codice SQL su un terminale, che tenta di utilizzare un file denominato "dump.sql" per esprimere un'istruzione CREATE TABLE. (Didascalia dell'IA)

Per scaricare il dump, ho seguito i passaggi suggeriti sopra da @EricGT:

Dopo di che ho seguito questi passaggi:

E poi quando voglio visualizzare i dati, mostra:

Ho appena rifatto questo per controllare.

  1. Usando la pagina di amministrazione https:///admin/backup ho richiesto un download e seguito i passaggi, c’erano diversi passaggi che includevano la verifica tramite email e il download di un file.
  2. Il file scaricato era un file gz ad esempio abc-2025-01-23-095947-v20250122131007.sql.gz. Su Windows ho decompresso il file usando 7-zip che ha creato una directory con lo stesso nome meno il .gz alla fine.
C:\Users\Groot\Downloads>dir *.sql.gz
23/01/2025  05:04           407.213.170 abc-2025-01-23-095947-v20250122131007.sql.gz

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

<DIR>          abc-2025-01-23-095947-v20250122131007.sql
  1. Usando un prompt dei comandi di Windows aperto nella directory con il file sql per verificare l’esistenza del file sql
C:\Users\Groot\Downloads\abc-2025-01-23-095947-v20250122131007.sql>dir

01/23/2025  05:04     1.572.346.154 abc-2025-01-23-095947-v20250122131007.sql
               1 File(s)  1.572.346.154 byte
  1. Usando lo stesso prompt dei comandi di Windows utilizzato per digitare il comando per elencare l’inizio del file 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';

Spero che questo ti porti al punto in cui puoi usare il file SQL con PGAdmin per importare i dati.


NB

Quando ho pubblicato a riguardo circa 5 anni fa, il tipo di file scaricato era tar.gz, ora è sql.gz. L’unica differenza è che ora è necessario un passaggio di decompressione in meno.

Ciao @EricGT

Grazie mille per il tuo aiuto! Ho seguito tutti gli stessi passaggi (con uno in più poiché il mio file ha ancora tar.gz). Ho raggiunto lo stesso risultato con il file sql:

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

Tuttavia, il problema è che quando uso PgAdmin per ottenere i dati, tutte le tabelle sono vuote e la tabella Users è semplicemente mancante.

Mi dispiace, non posso aiutarti con PgAdmin. Non uso PgAdmin e dovrei installarlo per provare. Installare PgAdmin non è un passo che mi interessa fare.

L’unica volta che ho avuto accesso a un database Discourse esportato è stato per installare PostgreSQL, odbc-postgresql e usare iusql come indicato qui.

Grazie mille per tutto il tuo aiuto! Lo apprezzo molto. Si scopre che stavo cercando di usare l’ultima versione di postgresql mentre dump.sql proveniva da una versione precedente. L’ho scoperto mentre cercavo di seguire la guida che hai usato. Grazie!