![]() |
|
Модераторы: LSD |
![]()
|
|
| KaKTyCc |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 2.8.2005 Репутация: нет Всего: 1 |
Коллеги, поделитесь опытом, как вы решаете эту задачу.
Есть сервер разработки, на котором каждый день ведется девелопмент, изменяются пакеты, процедуры, тригеры, вьюшки и т.д. Изменяются таблицы. Есть сервер тестирования, на который каждый день надо накатить измения сделанные например вчера. И есть сервер продакшн, на который надо накатить все изменения за время девелопмента, зарелизиться. Есть какие то тулзы для это? --------------------
Мой блог |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 5 Всего: 260 |
даже не представляю, как должны выглядеть тулзы.
есть продакшн сервер со своей структурой и своими данными. есть девелоп-версия, со своей структурой и своими данными. выход вижу только в логировании всех операций преобразования структуры, чтоб все ALTER TABLE, CREATE TRIGGER и прочее накопившееся, будучи примененным к продакшн-серверу, дали желаемый результат. Все же при использовании триггеров, функций/процедур и изменении самой структуры хранения данных, все инструменты синхронизации курят в стороне. |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
У нас разработчики готовят релиз скрипты.
По большей части релиз скрипт содержит помимо модификации схемы еще и модификцию данных. Откатать релиз-скрипт можно на пре-проде ;) Тулзы, позволяющие сравнить схемы, если и есть, то платформо-зависимы. Тулзы, сравнивающие данные, если и есть, в большинстве случаях безполезны, что минимизирует ценность первых и релиз скрипт таки приходится колбасить ручками. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| KaKTyCc |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 2.8.2005 Репутация: нет Всего: 1 |
Zloxa, а что это за релиз скрипты, как они выглядят
куча когда который прогоняется в sqlplus? skyboy а вы как решаете эту задачу? так же как в команде у Zloxa Еще вопрос, у кого то используется контроль версий? Какой процесс разработки? --------------------
Мой блог |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
типа того ;) Далеко не всегда это действительно скрипт. Если базу позволяют опустить надолго, или модификций и рисков мало, обходимся чисто лапками. Но в нотепадики таки план развертывания себе набрасываю Если речь пошла об оракле, Pl/SQL Developer умеет сравнительно сносно сравнивать схемы, даже пытается выделять разницу. Однако к DDL, генерируемым pls/sql developer'ом надо относиться весьма критично. Бывает кривит он информацию о партициях, IOT'ах, локальных индексах. Кажется были какието скриптики и от оракла для сравнения схем. Контроля версий у нас нет. Вернее есть, но ведется она на интуитивном уровне -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| KaKTyCc |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 2.8.2005 Репутация: нет Всего: 1 |
Zloxa, у вас что то типо релизов?
Которые запланированы? А вот интересно, как с такой задачей справляются сотовые провайдеры, если изменения большие, а сервис должен быть доступен 24/7. Ложат базу? --------------------
Мой блог |
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 5 Всего: 260 |
угу. проект, правда, у меня не особой сложности, но сейчас приходится корректировать структуру, на предыдущих этапах вполне устраивающую. Потому пишутся все нужные ALTER TABLE, UPDATE, INSERT ... SELECT, чтоб старые данные и в новой структуре остались живы. |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
Ну а как иначе? Никогда не получал от операторов сообщений типа "Service is not available now"? Ну и опять же 24*7 всякий бывает. Иногда, если сервер полежит пару-тройку часиков, потерь как таковых и не случается. У нас гендир раньше занимал какойто из высоких постов в билайне. Когда мы его запросили залечь на четверо суток(а у нас всего лишь транспортная система, от чего ее позиционируют как 24/7 - мне не ясно. Четверо суток полежали бы, ничо не сталось бы), он нас типа в непрофессионализме обвинил, сказав что его парни из билайна биллинг за двое суток на новую платформу перенести смогли. Так что и сотовики ложаться... Правда не знаю как. Но наверно можно как то придумать, чтоб время лежки было минимальным. Вот и нам тогда пришлось усекать релиз, выносить часть трансформаций на фоновый режим, править код, чтобы обеспечить возможность "некоторое время" работать на несогласованных данных. Но в двое суток типа уложились... Правда фоновые процессы отрабатывали два месяца ;)) Но бизнес этого не заметил, слава б-гу. Это сообщение отредактировал(а) Zloxa - 13.2.2009, 13:01 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| KaKTyCc |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 247 Регистрация: 2.8.2005 Репутация: нет Всего: 1 |
Zloxa, спасибо за ответ
--------------------
Мой блог |
|||
|
||||
| Bikutoru |
|
|||
|
Увлекающийся ![]() ![]() Профиль Группа: Участник Сообщений: 522 Регистрация: 24.5.2005 Где: Москва Репутация: нет Всего: 22 |
Утилиты имеются:
Есть LiquiBase http://www.liquibase.org/quickstart В Ruby on Rails есть Migrations http://wiki.rubyonrails.com/rails/pages/Un...ndingMigrations Для перла есть модуль DBIx::Migration (http://search.cpan.org/~daniel/DBIx-Migration-0.05/lib/DBIx/Migration.pm), с помощью которого можно сделать что-то подобное. Возможно есть что-то еще. У всех этих "штук" общая идея - все изменения схемы данных делаются не ручками, а через утилиту. Все измения схемы описываются парами - инструкции по переводу схемы из версии N в версию N + 1 и инструкции по откату схемы из версии N + 1 обратно к версии N (в LiquiBase это делается с помощью XML, в Migrations - ruby-кодом, в DBIx::Migration - парами SQL-скриптов). Это сообщение отредактировал(а) Bikutoru - 18.2.2009, 13:31 -------------------- Человек, словно в зеркале мир — многолик, Он ничтожен — и он же безмерно велик! Омар Хайям |
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |