2015-02-19 6 views
0

Для базы данных, основанной на postgres, мне нужно отразить определения таблиц и порядковые номера от одной схемы до другой. Для копирования определений схемы мне удалось использовать pg_dump только с определением схемы, однако документация, похоже, указывает, что порядковые номера экспортируются только при выборе экспорта данных.Как скопировать порядковые номера в postgresql

Есть ли возможность экспортировать соответствующие порядковые номера в экспортировании схемы или простой способ передачи этих значений или является единственной альтернативой для взаимодействия с базой данных с языка сценариев?

+1

Вы должны помнить, что pg_dump & pg_restore в основном используются для процессов резервного копирования и восстановления. Без данных обычно имеет смысл начинать все последовательности из 1. Зачем вам начинать последовательности с их предыдущих значений из зеркального db? –

+0

Если вы не копируете данные, то зачем вам синхронизировать значения последовательностей? –

+0

Я выполняю частичную условную миграцию данных, поэтому мне нужно, чтобы порядковые номера оставались неповрежденными, чтобы они не генерировали последовательности, которые ранее были назначены. –

ответ

0

Глядя на свалке pg_dump первым пишет создание последовательности и исправляет, что начальное значение с

SELECT pg_catalog.setval('tuutti_id_seq', 4, true); 

Итак, если вы делаете схему только дамп можно построить оператор из информационной схемы, для пример с SQL-запросом:

SELECT 'SELECT pg_catalog.setval(''' || sequence_name || ''', ' || start_value || ', true);' 
    FROM information_schema.sequences; 
Смежные вопросы