BYTEBOOK
Bytebook Docs • PostgreSQL / Database
← Înapoi la Bytebook
PATH: DOCS / POSTGRESQL_GUIDE.HTML _
[00:00:00] DOCS_READY
DEMOS Main Archive JAVA LABS Enterprise PY LABS Neural Assets NODE LABS Async Runtime INFRA Control Center
DATABASE GUIDES • POSTGRESQL & PGADMIN

Ghid Configurare și Migrare PostgreSQL pe VPS

Acest ghid descrie cum creezi o bază de date de test pe local cu pgAdmin, cum configurezi baza de date pe VPS-ul Ubuntu (63.250.40.142) și cum transferi datele sau te conectezi direct la server de pe Mac.

1. Crearea Bazei de Date de Test pe Local (în pgAdmin)

  1. Deschide pgAdmin 4 pe Mac și conectează-te la serverul local.
  2. În panoul din stânga (Browser), dă click dreapta pe Databases → Create → Database...
  3. Introdu numele bazei de date: testdb și apasă Save.
  4. Deschide instrumentul Query: click dreapta pe testdb → Query Tool.
  5. Rulează următorul script SQL pentru a crea o tabelă de test și a introduce câteva date:
-- Creează tabela 'users'
CREATE TABLE users (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    email VARCHAR(100) UNIQUE NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Introdu date de test
INSERT INTO users (name, email) VALUES 
('Alin', 'alin@bytebook.xyz'),
('Mihai', 'mihai@bytebook.xyz');

-- Verifică datele
SELECT * FROM users;

2. Crearea Bazei de Date de Test pe VPS (Ubuntu)

Deoarece PostgreSQL este deja instalat pe VPS, trebuie să creezi utilizatorul și baza de date pe server.

A. Conectare SSH și deschidere consola PostgreSQL

ssh root@63.250.40.142

sudo -i -u postgres
psql

B. Configurare Utilizator și Bază de Date în psql

-- Creează utilizatorul 'appuser' cu parolă securizată
CREATE USER appuser WITH PASSWORD 'ParolaTaSecurizata123!';

-- Creează baza de date 'testdb' deținută de 'appuser'
CREATE DATABASE testdb OWNER appuser;

-- Oferă toate drepturile
GRANT ALL PRIVILEGES ON DATABASE testdb TO appuser;

-- Ieși din psql
\q

Ieși din utilizatorul postgres înapoi la root:

exit

3. Permiterea Conexiunilor de la distanță (Remote Connections)

Implicit, PostgreSQL ascultă doar pe localhost. Ca să poți conecta pgAdmin de pe Mac direct la baza de date de pe VPS, trebuie să ajustezi 2 fișiere de configurare:

A. Modifică postgresql.conf (Adresă Ascultare)

nano /etc/postgresql/*/main/postgresql.conf

Caută linia listen_addresses și modific-o astfel:

listen_addresses = '*'

B. Modifică pg_hba.conf (Permisiuni Acces IP)

nano /etc/postgresql/*/main/pg_hba.conf

Adaugă următoarea linie la finalul fișierului:

host    all             all             0.0.0.0/0               scram-sha-256

C. Repornește PostgreSQL și deschide portul 5432

systemctl restart postgresql
ufw allow 5432/tcp

4. Conectarea pgAdmin de pe Mac direct la VPS

Te poți conecta la baza de date de pe server direct din interfața grafică pgAdmin de pe Mac:

  1. Deschide pgAdmin pe Mac.
  2. Dă click dreapta pe Servers → Register → Server...
  3. În tab-ul General: Name = VPS Bytebook
  4. În tab-ul Connection:
    • Host name/address: 63.250.40.142
    • Port: 5432
    • Maintenance database: testdb
    • Username: appuser
    • Password: ParolaTaSecurizata123!
    • Bifează Save password?
  5. Apasă pe Save.

5. Migrarea Datelor de pe Local pe VPS (Export/Import)

Metoda A: Folosind pgAdmin (Grafic)

  1. În pgAdmin local, click dreapta pe testdb → Backup...
  2. Cale fișier: alege o locație pe Mac (ex: testdb_backup.sql), Format: Plain → Backup.
  3. În conexiunea VPS Bytebook, click dreapta pe testdb → Restore... și selectează fișierul.

Metoda B: Folosind Terminalul (Linia de comandă)

1. Export pe Mac:

pg_dump -U postgres -h localhost testdb > ~/Desktop/testdb_dump.sql

2. Import direct pe VPS de pe Mac:

psql -h 63.250.40.142 -U appuser -d testdb -f ~/Desktop/testdb_dump.sql

6. Testarea Conexiunii din Aplicațiile Tale

Java (Spring Boot - application.properties)

spring.datasource.url=jdbc:postgresql://localhost:5432/testdb
spring.datasource.username=appuser
spring.datasource.password=ParolaTaSecurizata123!
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.hibernate.ddl-auto=update

Python (FastAPI / SQLAlchemy)

DATABASE_URL = "postgresql://appuser:ParolaTaSecurizata123!@localhost:5432/testdb"

Node.js (Express / pg package)

const { Pool } = require('pg');
const pool = new Pool({
  user: 'appuser',
  host: 'localhost',
  database: 'testdb',
  password: 'ParolaTaSecurizata123!',
  port: 5432,
});