powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сравнение 2 баз
12 сообщений из 12, страница 1 из 1
Сравнение 2 баз
    #32134177
Mixa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот такая проблемка, и я почему-то думаю, что не у одного меня.

Ткните меня носом в доку.

Есть база на родном Postgres-е. У клиента. Я прихожу делать там upgrade и приношу с собой образец новой базы полученный с помощью
Код: plaintext
pg_dump -s
. Как бы мне сравнить 2 структуры та, что сейчас сидит у клиента и ту что я принес.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Сравнение 2 баз
    #35067921
resu--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
та же беда. Вы нашли решение?
...
Рейтинг: 0 / 0
Сравнение 2 баз
    #35068415
Можно сделать свою утилиту - считывать структуру из системных таблиц Postgres, сохранять в каком-нить формате (XML, например) - и сравнивать. Но это возиться придется.
А еще вроде есть программа EMS DB Comparer for PostgreSQL.
...
Рейтинг: 0 / 0
Сравнение 2 баз
    #35069537
resu--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прежде чем самому Золотая рыбкавозиться хотелосьбы знать какие есть альтернативы:
Золотая рыбкаА еще вроде есть программа EMS DB Comparer for PostgreSQL.
вот это стоит денег, которые шеф неверняка (скрипя сердцем и глотая валериану) отдал бы, но оно ж должно работать, а то входит новая таблица с PK и ее ключик входит в существующую таблицу FK, так он новый столбец вставляет, потом делает его FK-Constarint на новою таблицу, а create самой этой новой таблици - нету. (а если бы и была то наверняка где нибудь по тексту после создания FK)
ну и потом imho интерфэйс перегружен (но это дело вкуса)
...
Рейтинг: 0 / 0
Сравнение 2 баз
    #35069999
Т.е., желательно не просто сравнить две структуры базы на предмет расхождений, а в результате этого сравнения получить набор скриптов на обновление... Мне казалось, EMS DB Comparer должен бы более или менее корректно с этим справляться, хотя какие-то глюки неизбежны, конечно. Сама с ним не работала, не знаю.
Может быть, было бы удобнее готовить скрипты на обновление баз в процессе разработки и у клиента прогонять только эти последние изменения?
...
Рейтинг: 0 / 0
Сравнение 2 баз
    #35071050
4_Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://www.sqlmanager.net/
платный продукт Database Comparer for PostgreSQL
работает отлично, правда как по мне долго:)

результатом работы есть скрипт который применив к базе которую хотишь проадейтить получаешь новую версию базы

Пробовал только схемы сравнивать, не данные.
...
Рейтинг: 0 / 0
Сравнение 2 баз
    #35072703
Resu--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4_Alexhttp://www.sqlmanager.net/
платный продукт Database Comparer for PostgreSQL
работает отлично, правда как по мне долго:)

его и пробовал, расхождения см. выше (PG v8.1)


Золотая рыбкаМожет быть, было бы удобнее готовить скрипты на обновление баз в процессе разработки и у клиента прогонять только эти последние изменения?

Вы совершенно правы, однако в реальной жизни это не получается:
во первых просто не хватает времени,
а во вторых (и это главное) нет четкой с-мы релизов, что бы делать patch_v1_to_v2, patch_v2_to_v3 ит.д.
а имею фактически десятки различных состояний


Золотая рыбкаТ.е., желательно не просто сравнить две структуры базы на предмет расхождений, а в результате этого сравнения получить набор скриптов на обновление...
в идеале еще и с возможностью отлавливания таблиц и столбцов которые были переименованы, ну и многое другое, потому как все виденные мною способы (до сих пор для PG) делают DROP COLUMN / ADD COLUMN (а не RENAME )
(но это требования скорее для платных "компаров")
...
Рейтинг: 0 / 0
Сравнение 2 баз
    #35075037
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Resu--[quot 4_Alex]
...
Вы совершенно правы, однако в реальной жизни это не получается:
во первых просто не хватает времени,
а во вторых (и это главное) нет четкой с-мы релизов, что бы делать patch_v1_to_v2, patch_v2_to_v3 ит.д.
а имею фактически десятки различных состояний
...

Тогда почему бы вам не организовать систему релизов? Лучше день потерять, потом за пять минут долететь (с) да и деньги/нервы целыми останутся
...
Рейтинг: 0 / 0
Сравнение 2 баз
    #35080156
4_Alex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
resu--прежде чем самому Золотая рыбкавозиться хотелосьбы знать какие есть альтернативы:
Золотая рыбкаА еще вроде есть программа EMS DB Comparer for PostgreSQL.
вот это стоит денег, которые шеф неверняка (скрипя сердцем и глотая валериану) отдал бы, но оно ж должно работать, а то входит новая таблица с PK и ее ключик входит в существующую таблицу FK, так он новый столбец вставляет, потом делает его FK-Constarint на новою таблицу, а create самой этой новой таблици - нету. (а если бы и была то наверняка где нибудь по тексту после создания FK)
ну и потом imho интерфэйс перегружен (но это дело вкуса)

А можно на примере проблему, я у себя проверю, а то работаю на этом, вроде не замечал проблемы... но база большая так что мог и незаметить.
...
Рейтинг: 0 / 0
Сравнение 2 баз
    #35088248
resu--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4_AlexА можно на примере проблему, я у себя проверю, а то работаю на этом, вроде не замечал проблемы... но база большая так что мог и незаметить.

ну проблем много (одна, см. выше, а вторая подробнее тут). два ALTER'а первый - в норме, со вторым проблема:

ALTER TABLE "c_job"."t_job_xml_style_type"
ALTER COLUMN "id" SET DEFAULT nextval('c_job.t_job_xml_style_type_id_seq'::regclass);

ALTER TABLE "c_job"."t_job_body"
ALTER COLUMN "id" SET DEFAULT nextval('t_jobs_id_seq'::regclass);


секвенция (которая имеется в виду) лежит в схеме "с_job", которая по дефолту не входит в "search_path", а в скрипте эта переменная не ставится. отсюда и ошибка скрипта в целом, т.е. DB Comparer могу использовать только для нахождения различий, их сглаживание - дело ручное.

PS 1: таблица звалась раньше "t_jobs" (поэтому и создалась секвенция "t_jobs_id_seq" по полю: id serial;), но была переименована в "t_job_body" секвенция при этом имени своего не изменила

PS 1.1: вообще эти ALTER'ы особого смысла не имеют, но интересна разница между кодом, который генерируют DB Comparer с PG Admin III и pg_dump'ом

PS 2: может у меня одного такие проблемы, (или обе левые, или я просто чтото не так делаю / понимаю, но моему все мной описанное входит в стандартный процесс разработки. жаль что postgresql.org не предоставляет своих средств для этого). 4_Alex, попробуйте проверить ваш update (или Mixa Ткните меня носом в доку. )

PS 3: PG 8.1x, PG 8.2x
...
Рейтинг: 0 / 0
Сравнение 2 баз
    #35089850
Фотография aov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот ещё имеется тулза маленькая:
http://apgdiff.sourceforge.net/
когдато ею я заинтересовался. потом понял, что она слабоватая - чёто не делает - вроде вьюхи чтоли не сравнивала она - не помню. написал автору - чеху :) - он это к ней дописал :). и вообще нормальный товарищ - можно у него что-то просить дописать. денег вроде не требовал :) - ну и вообще нормально общается. токо немного туговато русский понимает. я ему сначала на русском написал - поняв что он чех :). но потом стал писать на англицком - как умею :) - он сказал что так ему понятнее :).
вобщем потом я обнаружил что там с типами тот же прикол - не сравнивает :). а я свои типы пользую боле-менее активно. а с ними сложнее - они есть системные :(. ну он вроде как обещал сделать - но я уже не следил. я таки стал скрипты писать :). этот вариант конечно геморнее - но надёжнее. ну и у меня для моих целей это проще чем у вас видимо - на этом я и остановился.
так что для не сложных баз техника эта может быть использована - кажися фунциклирует. и она полностью безвозмездная - что не может не радовать :)
...
Рейтинг: 0 / 0
Сравнение 2 баз
    #35092575
resu--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aovвот ещё имеется тулза маленькая:
http://apgdiff.sourceforge.net/
я пока ковырял zongle в которой надо было подправить все запросы, но тем не мение она подавала надежды. времени пока нет, а дня через 3 попробую apgdiff и обязательно отпишусь.
спасибо!
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Сравнение 2 баз
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]