възстановяване на дъмп на една таблица от sql файл

Имам пълен дъмп на sql файл като dump_full.sql с размер 1.3GB

И има някои маси като

dancing_core_spice
dancing_sea_beast

forde_clear_one
forde_super_now

Сега това, което искам, е да възстановя/извлечем/изхвърлям only data от тези таблици от dump_full.sqlfile

psql -U postgres --table=dancing_core_spice dump_full.sql > dancing_core_spice.sql

Опитах горната команда, но не работи

Така че може ли някой да ме уведоми как да взема дъмп само на една таблица от sql файла (пълен дъмп)


person Shiva Krishna Bavandla    schedule 28.01.2014    source източник


Отговори (1)


За този тип операции дъмп файлът трябва да бъде в персонализирания формат на postgresql, създаден с pg_dump:

pg_dump -Fc

След това можете да възстановите една таблица с pg_restore

pg_restore --table=dancing_core_spice dump_full.sql > dancing_core_spice.sql

Този въпрос предоставя съвети за справяне вашият действителен случай:

  • Извлечете sql кода от файла. С редактор, скрипт или каквото и да е
  • Възстановете дъмпа до временна база данни и го изхвърлете отново с pg_dump
person Francisco Puga    schedule 28.01.2014
comment
Не можете да използвате pg_restore със SQL файл като вход. - person a_horse_with_no_name; 28.01.2014
comment
Това ми дава pg_restore: [archiver] input file appears to be a text format dump. Please use psql. - person Shiva Krishna Bavandla; 28.01.2014
comment
Можем да възстановим изпуснатата таблица от скрипт в процес от три стъпки. Първо извлечете структурата на таблицата от sql dump, второ извлечете данните от sql файла. Третата стъпка е да стартирате sql, за да създадете таблица и да възстановите. a) sed -n '/CREATE TABLE tblname/,/);/p' /tmp/dump.sql ›/tmp/ct.sql b)sed -n '/COPY tblnamel/,/\\./p' / tmp/dump.sql › /tmp/cv.sql c)psql -U postgres ‹db име› ›\i /tmp/ct.sql ›\i /tmp/cv.sql ›\q - person sramay; 24.06.2015
comment
Благодаря за съвета sramay. Чувствайте се свободни да отворите нов отговор. Но имайте предвид, че понякога вместо COPY дъмпът се прави с оператори INSERT или дори един оператор INSERT на ред - person Francisco Puga; 24.06.2015