Я пытаюсь написать команду pg_restore
для восстановления только определенных таблиц (и их данных) в моей базе данных.pg_restore только некоторые таблицы
Примечание: каждая команда описана начинается с меня сбрасыванием и повторным создания базы данных и заканчивается: -v -x -O -j 8 -h localhost -U username -d database file.dump
(Для любопытных, я не хочу использовать --clean
, поскольку база данных, что свалка пришла имеет другие . название)
с pg_restore
отлично работает для меня (с выше аргументами), я посмотрел на pg_restore
documentation, и пытался что-то вроде этого:
pg_restore -t table1 -t table2 ...
(есть 121 таблицы I указать таким образом).
Однако я получаю сообщение об ошибке, как следующее:
pg_restore: creating TABLE people
pg_restore: [archiver (db)] Error from TOC entry 123; 1234 12345 TABLE people dumped_table_username
pg_restore: [archiver (db)] could not execute query: ERROR: type "hstore" does not exist
LINE 14: extra_data hstore,
^
Command was: CREATE TABLE people (
id integer NOT NULL,
name string,
age integer,
date_of_birt...
Я не понимаю, почему это будет проблемой только тогда, когда -t
флаг установлен, но это, кажется.
Что происходит?
Edit: выглядит это дубликат pg_restore on table failing because of hstore, который был недавно спросил и не имеет общепринятый ответа как в это время.
'... начинается со мной, отбрасывая и воссоздавая базу данных и заканчивая ...' Вы имеете в виду «отбрасывание и воссоздание * таблицы *»? – joop
Нет, я имею в виду всю базу данных. Я использую Rails, поэтому 'rake db: drop && rake db: create'. – JacobEvelyn
Ну, если вы отбрасываете * базу данных *, то также расширяется расширение 'hstore'. Вы запускаете 'create extension hstore' после того, как вы заново создали базу данных (и до восстановления дампа)? –