Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
Мастера, поделитесь пожалуйста своим опытом! К примеру, где-то на сервере крутится "боевая" база. Для дальнейшей работы над ней и над клиентской частью, я делаю на свою рабочую машину локальную копию. Поработал. Внёс изменения в структуру таблиц, ХП и т.д. А теперь мне нужно внести все изменения, которые я сделал в метаданных своей локальной копии, на основную рабочую базу. Как вы это делаете? Есть ли для этого какое-то средство автоматизации, или же можно только вручную писать скрипт для обновления? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 00:45 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
Все исправления делаю сразу в скриптах. Как только отладил какое-то изменение - кладу соотвествующий скрипт в специальный каталог и описываю изменение в черновике-документации. Когда решаем выпускать очередной апдейт - все скрипты уже готовенькие лежат в кучке, там же лежит и whatsnew.doc Осталось все скрипты разом прогнать по рабочей базе и/или положить их в InstallShield для рассылки на удаленые базы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 01:03 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
То есть вы под каждую сущность БД отводите отдельный файлик со скриптом? А если создание зависимых таблиц должно происходить в определённой последовательности? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 01:29 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
Евгений_CТо есть вы под каждую сущность БД отводите отдельный файлик со скриптом? А если создание зависимых таблиц должно происходить в определённой последовательности? А у меня все файлики имеют цифровые имена :) Версия_ПодВерсия_НомерСтрокиВДокументации_НомерФайлика.sql И все скрипты запускаются всегда в алфавитном порядке. В моем рабочем каталоге скрипты конечно называются по имени таблицы или ХП которые в них описаны, а при копированнии в каталог для апдейта получают цифровое имя. Этакий ручной CVS :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 01:45 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
2 White Owl >Все исправления делаю сразу в скриптах. Согласен, скрипты ИМХО самое удобное. 2 Евгений_C >То есть вы под каждую сущность БД отводите отдельный файлик со скриптом? А если создание зависимых таблиц должно происходить в определённой последовательности? Можно все складывать в один файл. В БД изменения очевидно есть двух видов: изменение хранилища (даные уже лежат) и изменение алгоритмов. Со вторым все просто, делается drop-create (или alter, но он у нас почему-то при интенсивном использовании завешивал сервер) для всех процедур и представлений, не особо задумываясь менялась процедура/представление или нет. Хотя по-правильному наверное нужно составлять список обновленных объектов, например в специальной таблице, потом выполнять алтер только для них, это не сложно, но лень. Зато нет проблемы что что-то забудем. С первым проблема, "дроп табле" сделать нельзя, поэтому пишется специальный скрипт со всеми "алтер табле" и всем что с этим связано, в него складываются все изменения. Скрипт пишется таким образом, чтобы при выполнении старые изменения приводили к некритическим ошибкам, это несложно, такие ошибки игнорируются. Скрипт периодически чистится и старые изменения переносятся в файл создания БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 02:50 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
Спасибо всем ответившим. Понятно, буду пока организовывать работу с файловыми скриптами, если никто не подскажет более удачной методки. Кстати, а что вы можете сказать по поводу ПоверДизайнер? По идее, поскольку это родной Сайбейзавский продукт, то он должен вполне корректно работать с АСА. Обратное моделирование там есть, я уже попробывал, хорошо работает. А заливка в базу изменений, внесённых в модель, там ведь наверное должна быть? Или лучше не связываться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 03:39 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
IMHO Лучший вариант использовать PowerDesigner, поддерживать изменения в модели и делать скрипт по update модели. Версии моделей держать в репозитории PowerDesigner. С уважением, Андрей Колчанов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 10:04 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
kolchanovIMHO Лучший вариант использовать PowerDesigner, поддерживать изменения в модели и делать скрипт по update модели. Версии моделей держать в репозитории PowerDesigner. С уважением, Андрей Колчанов Чтобы PD хорошо понимал ASA, придется малость "напильником" его доработать (DBMS). Мне кажется, команда разработчиков PD могла бы побольше внимания уделить ASA. Я лично тоже синхронизирую БД методом сохранения нужных DDL и DML скриптов в файлы и последующим их выполнением на других БД. Сейчас в фирме уже наполовину готова собственная разработка CSV на базе ASA9, где в БД описано хранилище проектов, моделей, связей между ними, сборок, скриптов и присоединенных файлов входящих в сборку, патчи сборок, списка подписавшихся на патчи БД и системы прав пользователей к проектам, модулям, сборкам и патчам. Структура БД фактически полностью готова, теперь необходимо написать генерацию скриптов на патчи, клиентское приложение, подумываем организовать его на веб-сервисах через MacroSQL, осталось только найти свободное время. В дальнейшем можно будет еще написать парсер трайс-файла ASA, чтобы можно было регистрировать в сборках скрипты изменений не только ручками, но и по трассировке БД. Так же неплохо бы потом написать реинжинеринг сборки скрипта создания новых обьектов по обьектам модели, для копирования модели в другую БД. Проект open-source (т.е. делается собственными средствами и не является собственностью фирмы), если доделаем и он оправдает то, что мы от него ожидаем, тогда выложим на общее пользование и так же в интернете выложим на его базе хранилище наших служебных обьектов и скриптов, вместо их выноса в FAQ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 11:09 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
Вставлю и свои 5 копеек :) Я все изменения в структуре базы делаю определенным юзером с правами ДБА. Затем транслирую лог базы только для этого юзера и получаю готовый скрипт для внесения в боевую базу. Этот метод разу не подводил. Правда, надо быть внимательным при создании объектов - правильно указывать владельца, ибо АСА по умолчанию делает владельцем активного юзера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 12:02 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
PaulJBВставлю и свои 5 копеек :) Я все изменения в структуре базы делаю определенным юзером с правами ДБА. Затем транслирую лог базы только для этого юзера и получаю готовый скрипт для внесения в боевую базу. Этот метод разу не подводил. Правда, надо быть внимательным при создании объектов - правильно указывать владельца, ибо АСА по умолчанию делает владельцем активного юзера. Хорошее решение, нужно будет прикрутить к своему CSV :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 12:10 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
Меня тоже очень интересует этот вопрос. Вот допустим создал я окуратненько скрипт изменений, в центральную то базу я его и сам внесу, а вот если на удаленных сидят полные балбесы и им нельзя доверить ничего, как тогда автоматизировать процес внесения изменений на удаленной базе? Вот White Owl говорит что через InstallShield, может каким нибудь другим подобным оброзом можно? или может через репликацию как нибудь? Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 16:49 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
Dimyan Меня тоже очень интересует этот вопрос. Вот допустим создал я окуратненько скрипт изменений, в центральную то базу я его и сам внесу, а вот если на удаленных сидят полные балбесы и им нельзя доверить ничего, как тогда автоматизировать процес внесения изменений на удаленной базе? Вот White Owl говорит что через InstallShield, может каким нибудь другим подобным оброзом можно? или может через репликацию как нибудь? Posted via ActualForum NNTP Server 1.2 passthrough for remote1, remote2, ...; ... passthrough stop; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 17:00 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
Dimyanа вот если на удаленных сидят полные балбесы и им нельзя доверить ничего, как тогда автоматизировать процес внесения изменений на удаленной базе? Вот White Owl говорит что через InstallShield, может каким нибудь другим подобным оброзом можно? Ну как же без балбесов на удаленных местах? Там только балбесы и сидят :) У нас просто в апдейтах идут не только обновления базы, но и заменяемые куски от клиентского приложения. Поэтому InstallShield и был выборан. Мы кладем в пакет апдейта еще и маленькую утилитку (написаную за пять минут). Которая читает все файлы из указаного каталога и в алфавитном порядке кидает эти файлы как есть через ODBC в базу. То есть тоже самое что и isql только без i :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 19:14 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
PaulJBВставлю и свои 5 копеек :) Я все изменения в структуре базы делаю определенным юзером с правами ДБА. Затем транслирую лог базы только для этого юзера и получаю готовый скрипт для внесения в боевую базу. Этот метод разу не подводил. Правда, надо быть внимательным при создании объектов - правильно указывать владельца, ибо АСА по умолчанию делает владельцем активного юзера. А не могли бы вы поподробнее рассказать об этом? Где можно увидеть лог базы, и как выполнять его "трансляцию"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2005, 23:52 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
Евгений_C А теперь мне нужно внести все изменения, которые я сделал в метаданных своей локальной копии, на основную рабочую базу. Как вы это делаете? Есть ли для этого какое-то средство автоматизации, или же можно только вручную писать скрипт для обновления? Можешь глянуть Database Comparer. http://globalsoft.com.ua/cc/demo/dbcomparerbeta.zip Для Sybase правда сравнение баз только по скриптам и в основном гонялось не на 9-й версии. Если будет желание - можем поработать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2005, 19:28 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
barryМожешь глянуть Database Comparer. Спасибо. Сейчас посмотрю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.06.2005, 00:24 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
Рыжий Кот passthrough for remote1, remote2, ...; ... passthrough stop; А можно пожалуйста немного по подробнее, а то из BOL как то не совсем понял :( (или совсем непонял :( ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2005, 22:23 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
DBDelta для SQL Anywhere и бесплатно, для пятой версии работало хорошо, для девятой не пробовал: пользуюсь PD ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2005, 01:28 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
Dimyan Рыжий Кот passthrough for remote1, remote2, ...; ... passthrough stop; А можно пожалуйста немного по подробнее, а то из BOL как то не совсем понял :( (или совсем непонял :( ) например есть центральная база + две удаленных, remote1 и remote2 пользователи sql remote. если необходимо, скажем, добавить к табличке поле, то нужно написать. авторpassthrough for remote1, remote2; alter table "dba"."mytable" add new_field char(200) ; passthrough stop; команда alter table "dba"."mytable"... выполнится как на консолидированной, так и на перечисленных удаленных базах с пользователями remote1 и remote2. Так можно выполнять почти все инструкции DDL. Советы по личному опыту: - по возможности тестируйте код на тестовой базе; - не забывайте про ; :) - не загоняйте много инструкций между операторами passthrough for ... passthrough stop, делайте маленькими "транзакциями"; - при создании новой таблички часто забывал ее добавить в публикацию для репликации; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2005, 07:05 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
Рыжий Кот пишет: > Так можно выполнять почти все инструкции DDL. > А можно гденибудь посмотреть какие инструкции DDL нельзя выполнять таким образом? >- при создании новой таблички часто забывал ее добавить в публикацию > для репликации; Я правильно понял что публикацию таким образом (например добавление в нее новой таблицы) менять можно? Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2005, 11:36 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
Dimyan Рыжий Кот пишет: > Так можно выполнять почти все инструкции DDL. > А можно гденибудь посмотреть какие инструкции DDL нельзя выполнять таким образом? >- при создании новой таблички часто забывал ее добавить в публикацию > для репликации; Я правильно понял что публикацию таким образом (например добавление в нее новой таблицы) менять можно? Posted via ActualForum NNTP Server 1.2 насчет первого - наверное в документации, но я пока не встретил ограничений. Спокойно доабвляются пользователи, меняются пароли, тригеры, ключи, ХП, функции... просто потребуется немного внимания и опыта. второй вопрос - ответ положительный: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2005, 12:22 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
Рыжий Кот, спасибо, буду пробывать. На первый взгляд (имхо) это наиболее удобный способ. Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2005, 12:45 |
|
||
|
Синхронизация метаданных
|
|||
|---|---|---|---|
|
#18+
2 Евгений_C Я лог транслирую централом. Там в утилитах есть Translate Log File. На определенном шаге утиль спрашивает для какого юзера транслейтить: для всех или для указанного. Я указываю для кого ... и все. В результате получаю оттранслированный лог в виде SQL-файла, но в нем содержатся только те операции, которые производил этот юзер. Немного поработав напильником получаем готовый скрипт для passthrough for ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2005, 15:12 |
|
||
|
|

start [/forum/topic.php?fid=55&fpage=101&tid=2013583]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
29ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 360ms |

| 0 / 0 |
