|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
Всем привет! В процессе разработки ПО, мы несколько раз в неделю вносим изменения в структуру девелоперской базы (новые таблицы, поля). Раз в неделю производим синхронизацию структуры рабочей базы (SQL Server 2005, MSVS 2008) с девелоперской. Расскажите, как решаете проблему синхронизации? Какие инструменты для отслеживания измений в структуре используете. Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2009, 21:13 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
А не надо грязными руками лазить в базы. Даже в девелоперские :) У нас заведено правило - любые модификации структуры базы исключительно только через документированные скрипты. Боевых баз с одинаковой структурой больше десятка. Есть собственная системка контроля модификаций, в которой ведутся сами модифицирующие скрипты, а также информация о том, к каким базам они приложены. Пришли к такой схеме не сразу, но она оказалась самой надежной, удобной и жизнеспособной. До этого были разные варианты: скрипты баз в системе контроля версий, сравнение и модификация средствами типа Power Designer и т.п. Ни в коей мере не умаляя полезность этих инструментов, они для данной задачи были признаны непригодными, когда сложность базы и количество боевых инсталляций превысили какой-то предел. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2009, 22:13 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
Александр Гoлдун, Спасибо за совет. Сейчас у нас одна база и поэтому мы начнём с Power Designer + скрипты в системе контроля версий. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2009, 06:51 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
Александр ГoлдунДо этого были разные варианты: скрипты баз в системе контроля версий, сравнение и модификация средствами типа Power Designer и т.п. Ни в коей мере не умаляя полезность этих инструментов, они для данной задачи были признаны непригодными, когда сложность базы и количество боевых инсталляций превысили какой-то предел. А может Вы просто "не умели готовить" ? ;) IMHO PD хватит и на сложные базы и кол-во боевых инсталляций, при условии что используется репозиторий, все изменения схемы БД производятся в нем и есть понимание того, как можно облегчить и автоматизировать свой труд (template, скриптовый язык и т.д.). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2009, 09:46 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
ASCRUSА может Вы просто "не умели готовить" ? ;) IMHO PD хватит и на сложные базы и кол-во боевых инсталляций, при условии что используется репозиторий, все изменения схемы БД производятся в нем и есть понимание того, как можно облегчить и автоматизировать свой труд (template, скриптовый язык и т.д.). Вот до изучения скриптовых наворотов не дошли, ибо нет у нас выделенного инструментально-методического отдела, чтобы придумывать, как же приспособить вот эту штуку под вот те задачи. А вообще опыт работы с PD достаточно большой. И репозиторием тоже активно пользовались. Шли от задачи. И уж поверь, но написать отдельную софтину именно для того, что нам нужно, оказалось гораздо более оптимальным вариантом, чем выкручиваться и приспосабливать то, что где-то есть. Задача ведь стояла не просто тупо прикладывать все изменения из девелоперской базы в боевые. Нужен гибкий и детальный контроль этих самых изменений. Некоторые изменения можно прикладывать только при определенных условиях, и эти условия описываются в системе. Этими условиями могут быть и изменение определенных модулей клиентской части, и выполнение какой-либо работы над данными, причем зачастую ручной. Некоторые такие изменения по некоторым базам приходится держать очень долго неприложенными, в то время как к другим базам все давно приложено, и другие изменения к этой базе тоже прикладываются. Отследить это штатными средствами PD малореально. А инструмент, который мы сделали - очень простейший. Это по сути таблица SQL-скриптов. С датами, пояснениями, и т.п. Плюс информация о том, к какой базе приложено. Разумеется, с фильтрами, отборами, можно увидеть все что надо еще приложить к любой базе и т.п. Ну и дополнительно для удобства по кнопочке оттуда же собственно и происходит прикладывание скрипта к выбранной базе, если она доступна. Софт копеечный получился, зато удобств... Это надо почувствовать разницу, чтобы понять. Разумеется, к этому орг. решение - запрет бездумного изменения структур руками в Sybase Central, по крайней мере на официальной разработочной базе, не говоря уж про боевые. Но этот минимум бюрократии с лихвой компенсируется полным отсутствием бардака, не смотря на весьма навороченную структуру БД и большое количество инсталляций. Не патентую, так что пользуйтесь идеей, кому актуально :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2009, 10:09 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
Только скрипты. Храним в стартиме. Добавить новое поле ? Скрипт создания новой таблицы + переливание данных из старой + грохаем старую + переименовка новой таблицы в старую. Трудоемко ? Да. Но предсказуемо. Есть возможность откатить правки, накатом предыдущего скрипта. Хорошо видна история изменений. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2009, 10:10 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
Embarcadero Change Manager, PowerDesigner. Первый в принципе автоматом делает все вот это - Добавить новое поле ? Скрипт создания новой таблицы + переливание данных из старой + грохаем старую + переименовка новой таблицы в старую., но надо набить руку, чтобы правильные галки проставлять не забывать. И платный :) PD тоже умеет накатывать изменения, но по ощущениям больше возможность что-то потерять. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2009, 12:28 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
А6дуллаh3PD тоже умеет накатывать изменения, но по ощущениям больше возможность что-то потерять. PD может терять при реверсе. При генерации по модели SQL скрипта на создание или обновление он физически ничего потерять не может ;) Однако и реверс можно довести до ума, если определить, что он может терять и дописать DBMS до ума. Александр ГoлдунА инструмент, который мы сделали - очень простейший. Вот в том то и дело - мне раньше тоже казалось, что легче сделать инструмент, чем пользоваться PD :) Сейчас это мнение у меня сильно поколебалось после общения с европейскими спецами, работающими с PD, другое дело что я к примеру пока не обладаю таким уровнем знаний (а ведь они помимо темплейт и скриптов не леняться и плагины монстрячить в DLL под PD). По непроверенным пока слухам есть шанс получить книгу на русском языке по PD 15, которая сейчас пишется в Европе. Если это случится, то писать своих инструментов придется меньше :) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2009, 13:19 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
А кто что думает про SQL Examiner ? :-[ ... |
|||
:
Нравится:
Не нравится:
|
|||
25.06.2009, 14:29 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
заинтересовала тема. А есть опыт управляемого внесения изменений для СУБД с репликацией? СУБД MS SQL Server 2005 Ландшафт такой центральная БД, которая заодно (пока) и публикатор и дистрибьютор кучка БД, которые подписчики репликация слиянием есть подписчики на медленных каналах (GPRS). Собственно, в этом весь и проблем. Необходимо обеспечить максимально безопасное изменение центральной БД, чтобы не допустить реинициализацию и как следствие перезаливку сотен МБ ... |
|||
:
Нравится:
Не нравится:
|
|||
27.06.2009, 08:28 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
Лопата2 А есть опыт управляемого внесения изменений для СУБД с репликацией? Имеется. У нас несколько баз как раз реплицируемые. И тоже некоторые по медленным каналам. Правда не MSSQL, а SQL Anywhere, но суть от этого не меняется. Рецепт нашли только один - осторожность и понимание того, что делаешь. При внесении скриптов по реплицируемым базам, если они касаются частей базы, участвующих в подписках, человек должен четко понимать происходящее. Если действие опасное или требует особого внимания при приложении - делаются соответствующие пометки по скрипту, на которые должен обратить внимание прикладывающий. Вплоть до того, что скрипт просто делается не выполняемым тупо по кнопке, требуя предварительной правки и исключая таким образом его случайное бездумное прикладывание. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.06.2009, 12:34 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
оживим тему есть ли что-то подобное SQL Examiner, только для FB/IB ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2010, 07:50 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
genokоживим тему есть ли что-то подобное SQL Examiner, только для FB/IB ? Самое что банальное приходит в голову. C# Сделать 2 датасета. В каждый грузить "Select * from dataTable Where 1=2" А список таблиц с бд получить реально. Дальше циклы на C# Типа независимость от СУБД ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2010, 07:54 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
ASCRUSПо непроверенным пока слухам есть шанс получить книгу на русском языке по PD 15, которая сейчас пишется в Европе. Если это случится, то писать своих инструментов придется меньше :) Свершилось? Есть книга-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.09.2010, 11:36 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
VolochkovaСамое что банальное приходит в голову. C# Сделать 2 датасета. В каждый грузить "Select * from dataTable Where 1=2" А список таблиц с бд получить реально. вот так всегда - всё сам да сам )) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 05:26 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
genokVolochkovaСамое что банальное приходит в голову. C# Сделать 2 датасета. В каждый грузить "Select * from dataTable Where 1=2" А список таблиц с бд получить реально. вот так всегда - всё сам да сам )) А там не много... чуть чуть.... Зато ощутите себя мега програмерами ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 10:45 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
После каждого изменения схемы таблицы (или БД) выгружаете её в текстовый файл и помещаете в CVS, это позволит отслеживать изменение схемы за любой период. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 13:04 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
ЮВ, впринципе можно и это делать, однако контроль версий инсталяционых/миграционных скриптов оно не отменяет. распространие скриптов клиентам несколько иная задача. Можно скрипт заточить так, чтобы он накатывал только недостающие изменения. Можно отдельно следить, какие изменения уже применены, и отгружать клиенту только "довески" в вид отдельных скриптиков. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.09.2010, 20:05 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
Сначала ознакомиться с: Evolutionary Database Design Get Your Database Under Version Control Tools dbdeploy Database Change Management ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2010, 14:25 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
сделал решение на FIBPlus-овском BatchAllRecords при очередном изменении структур создается .FBK с метаданными и на его основе создается новая база со свежими структурами и старыми данными Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2010, 13:24 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
18.11.2010, 19:12 |
|
Отслеживание изменений структуры БД
|
|||
---|---|---|---|
#18+
Столкнулся с етой задачей несколько лет назад. В БД сотни обектов (таблицы, вюверы, сп...), гдето раз в две недели выходит новая версия системы (клиентская часть + БД). На то время сисема была установлена где-то в 10 клиентов. При апдейте ситемы в клиентов приходилось вносить изменения в БД через конструктор или скриптами. Не все клиенты обновлялись после каждого релиза, иногда перепрыгивали, например с версии 25 сразу на версию 31. Приходилось вносить все изменения по цепочке. Разработчики забывали разяснять внедренцам что, где и как надо менять, у внедренцев не было опыта и знаний для работы с СУБД напрямую, внедренцы иногда менялись, разработчикам приходилось обяснять новым внедренцам всё сначала, количество клиентов начало расти, версии у каждого были разные...начался кошмар с внедрением и обновлением. Возникла необходимость высылать клиентам обновления (новые версии) которые они могли бы установить самостоятельно. Пересмотрел и перепробовал разные готовые решения и ничего подходящего не нашол. Фриварные решения не обеспечивали нужного функционала, а платные не подходили из-за того что их надо было ставить у клиента который их не покупал. Клиен и внедренцы не могли разобраться и работать со сложными готовыми решениями которые возможно и решили бы проблему но надо было их достаточно хорошо изучить, а заставить ето сделать клиента не реально, да и не правильно. к тому же их надо было установить у каждого клиента. Решили: 1) все изменения делать только через скрипты, которые сохранять в папках с определённой структурой, установили несколько простейших правил: что где и как сохранять и т.д. 2) написать свою простенькую программку, которая выполняет все скрипты с определённой очерёдностью. Ету программку распостранили среди клиентов. При обновлении, клиент в етой программе указывае путь к папке со скриптами, нажимает одну кнопку и идёт пить кофе ) Через несколько минут всё готово и без остановки работы системы у клиента. Счас клиентов сотни, у всех разные версии, внедренцы отправляют им обновления до какой угодно версии и когда угодно, разработчики не парятся с внедренцами, всё работает прекрасно. Кроме того удалось навести порядок в офисе между разработчиками, каждый может обновить свою рабочую БД учитывая изменения других. Разработчики и внедренцы счас у разных городах, добавились ещё тестеры и у всех всё прекрасно обновляется до нужной версии. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.11.2010, 13:28 |
|
|
start [/forum/topic.php?fid=33&msg=36874284&tid=1548156]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 140ms |
0 / 0 |