Встречается на собеседованиях • сегодня

Как копировать данные с одной БД в другую в PostgreSQL

Для копирования данных между БД в PostgreSQL можно использовать несколько подходов:

  1. pg_dump и psql (для полного копирования):
bash
pg_dump -U user -h source_host source_db | psql -U user -h target_host target_db
  1. COPY команда (для таблиц):
sql
-- На источнике
COPY table_name TO '/tmp/table_name.csv' WITH CSV HEADER;

-- На цели
COPY table_name FROM '/tmp/table_name.csv' WITH CSV HEADER;

text

3. **dblink расширение** (для прямого копирования):
```sql
-- Установить расширение если нужно
CREATE EXTENSION IF NOT EXISTS dblink;

-- Пример копирования данных
INSERT INTO target_table
SELECT * FROM dblink('dbname=source_db user=user password=pass host=source_host',
                     'SELECT * FROM source_table') AS t(column1 int, column2 text);
  1. Foreign Data Wrappers (для постоянного доступа):
sql
CREATE EXTENSION postgres_fdw;
CREATE SERVER foreign_server FOREIGN DATA WRAPPER postgres_fdw 
OPTIONS (host 'source_host', dbname 'source_db');

Выбор метода зависит от объема данных, частоты копирования и требований к производительности. Для разовых операций подойдут первые два метода, для регулярных - последние.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы