Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Организация разработки под Oracle  [new]
Dr. Gonzo
Member

Откуда:
Сообщений: 7
Здравствуйте! Мы занимаемся разработкой информационно-аналитической системы с использованием СУБД Oracle, логика у нас серверная, клиент на C#. Недавно фирма серьёзно расширилась, и сейчас мы пытаемся организовать работу в офисе разработки. Есть две базы разработки и тестирования (и разбросанные по стране базы заказчиков). Пока мы не придумали ничего умнее чем тупо фиксировать часть изменений, сделанных на бд разработки, в виде скриптов (изменения данных в основном), а остальное (объекты) выдёргивать в DDL и в итоге вручную формировать билд (потом соответственно организовать репозиторий). Каждый билд прогоняется на тестовой, и после одобрения тестера укатывает к клиенту.
Собственно, схема явно не самая оптимальная. Безумно интересно, как организована разработка у вас. Думаю, ваш опыт будет для нас кране ценен. Заранее огромное благодарю.
1 окт 10, 22:38    [9541278]     Ответить | Цитировать Сообщить модератору
 Re: Организация разработки под Oracle  [new]
zxc++
Guest
Dr. Gonzo,

Тестирование, разработка?!! Сразу на работающей системе, ведь ораклисты самые крутые разработчики ... и пользователи сами сообщат обо всех багах. А что не найдут, то не баг.

В общем-то, сама компания оракл также и поступает. А поскольку без поддержки таким продуктом пользоваться нельзя, без поддержки продукты не продаются.
1 окт 10, 23:10    [9541329]     Ответить | Цитировать Сообщить модератору
 Re: Организация разработки под Oracle  [new]
Dr. Gonzo
Member

Откуда:
Сообщений: 7
zxc++,

Шутить изволите. Речь не о "Тестирование, разработка?!!", а о миграции кода между базами. Мы руками дёргаем DDL, генерим инсерты и тд. Потом шлём по почте админу, и он руками собирает билд. Речь идёт о том, что в лучших домах Европы явно используют какие-то инструменты, позволяющие оптимизировать процесс. Отсюда и вопрос.
2 окт 10, 00:58    [9541626]     Ответить | Цитировать Сообщить модератору
 Re: Организация разработки под Oracle  [new]
брадобрей
Member

Откуда:
Сообщений: 4696
В домах Европы гораздо сложнее.

Очевидно, что есть некая CVS.
Есть много баз:
Девелоперских примерно столько же сколько активных бранчей в CVS.
QA базы, краткосрочные, долгосрочные.

Есть четкий регламент по обновлению всего from production environment и содержанию в актуальном состоянии.
И инструменты деплоймента, все что я видел - самописные, которые должны позволять деплоить "базовую единицу деплоймента": набор объектов состоящий из имени объекта в CVS и версии.
2 окт 10, 01:32    [9541654]     Ответить | Цитировать Сообщить модератору
 Re: Организация разработки под Oracle  [new]
брадобрей
Member

Откуда:
Сообщений: 4696
ну то есть это не относится к ораклу или к базам данных, это environment management.
В лучших домах европы environment manager это отдельный чел.
Задача
обеспечить среды девелоперские,
QA,
обновления их с production
и накат релизов и патчей.
2 окт 10, 01:36    [9541660]     Ответить | Цитировать Сообщить модератору
 Re: Организация разработки под Oracle  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6912
зачем руками? делайте батник, который будет запускать скрипты sql
2 окт 10, 17:36    [9542168]     Ответить | Цитировать Сообщить модератору
 Re: Организация разработки под Oracle  [new]
Примерно так
Guest
1. есть общий репозиторий скриптов
2. скрипты в него сбрасываются уже только после полной проверки, дабы всегда можно было смело взять последние скрипты и актуализировать билд (то есть как таковой сборки нет в принципе) (но это конечно все равно не гарантирует полной защиты от багов - зависит от разработчика и уровня тестирования наверно)
2 окт 10, 19:35    [9542380]     Ответить | Цитировать Сообщить модератору
 Re: Организация разработки под Oracle  [new]
Примерно так
Guest
alex-ls
зачем руками? делайте батник, который будет запускать скрипты sql

Или напишите свою программулину, которая будет прогонять скрипты :)
2 окт 10, 19:38    [9542388]     Ответить | Цитировать Сообщить модератору
 Re: Организация разработки под Oracle  [new]
-2-
Member

Откуда:
Сообщений: 15330
alex-ls
зачем руками? делайте батник, который будет запускать скрипты sql
батник называется sqlplus.
2 окт 10, 19:39    [9542394]     Ответить | Цитировать Сообщить модератору
 Re: Организация разработки под Oracle  [new]
Tolka
Member

Откуда:
Сообщений: 199
Dr. Gonzo
Собственно, схема явно не самая оптимальная


Почему не оптимальная?

Все исходники + скрипты патчей по базе под SVN. Во время разработки текущей фазы проекта все изменения по базе накапливаются в виде единичных скриптов которые в итоге вызываются по очереди одним управляющим файлом. Т.е. написан батник, который дёргает sqlplus, запрашивает у пользователя все входные параметры (логин, пароль, база, названия тейблспейсов и т.д.), проходит по конфигурационному файлу и выполняет по очереди всё, что там указано.

Подход проверенный и работает на реальных проектах.
3 окт 10, 01:35    [9543359]     Ответить | Цитировать Сообщить модератору
 Re: Организация разработки под Oracle  [new]
Примерно так
Guest
Tolka
Т.е. написан батник, который дёргает sqlplus, запрашивает у пользователя все входные параметры (логин, пароль, база, названия тейблспейсов и т.д.)

Когда-то тоже делали именно так. Сейчас это кажется очень неудобным какие-то батники делать, названия тэйблспэйсов и т.д. :). Все это вполне себе нормально полуавтоматизируется до уровня, что достатночно просто написать скрипт, дальше все само (ну разве что пару кликов по паре кнопок) :).
4 окт 10, 09:45    [9546352]     Ответить | Цитировать Сообщить модератору
 Re: Организация разработки под Oracle  [new]
Pavel Ghost
Member

Откуда: UK
Сообщений: 151
У нас workarea такой:
1. База девелоперов с общей и персональными схемами (меньшая по данным)
2. База аннотирования контента (где трудятся всякие химики, биологи и пр.)
3. Тестовая база
4. База предрелизного/нагрузочного тестирования
5. Базы предыдущих релизов

Сервер приложений/толстые клиенты на perl/Java.

Процесс реализован так: В svn лежат в одной ветке скрипты/Java/DDL-структуры/XML-содержимым таблиц метаданных(для некоторых вещей даже Excel - перловики лепят из него что хотят).

Изменения структуры пишутся в спец. виде (вызовы DDL, контентных скриптов) в одном перловом файле, в котором указываются номера билдов из svn. При удачном выполнении изменений этот билд сохраняется в базе/схеме, к которой он применялся, в таблице. Следующее выполнение скрипта применяет только те изменения, что соответствуют билдам после того, что указан в таблице. Для контента выполняется сравнение и добавляются/удаляются/обновляются записи (с учётом каскадных связей по PK/FK) - для метаданных это достаточно просто и небольшого объёма.
Для обновления основного контента путь один - источником всегда является (2) - процедурой на перле данные, за исключением пользовательских, переносятся на остальные базы с определёнными фильтрами.
Разработчики на (1) вносят изменения, предварительно тестируют на персональных серверах приложений, подключаясь к своей или общей девелоперской схеме - результаты комитят в svn как в скрипты/Java, так и DDL, устанавливая текущий билд - я сам или моя группа контроллируем изменения структуры, хотя мы и так участвуем в разработке, но лишним не бывает. Ну и применяем по разным схемам, которые соответствуют ветке в svn (т.е. такие действия выполняются не только для trunk, но и для branches, когда фиксятся баги при предрелизном тестировании).
Апдейты для production и in-house систем готовятся по спец протоколу - несколько видов апдейтов + персональные патчи для заказчиков.
4 окт 10, 10:25    [9546645]     Ответить | Цитировать Сообщить модератору
 Re: Организация разработки под Oracle  [new]
Быдло__кодер
Member

Откуда: Киев
Сообщений: 193
1. Эталонная база - репликация с реальной базы предыдущего релиза
2. Релизная база без данных - то, что поставляется в инсталляторе новым клиентам
4. Общая тестовая база
3. У каждого разработчика - виртуальная машина на которую устанавливается/ломается любая база

Вначале разрабатываем и проверяем все локально на виртуальной машине. Создаем скрипт догонки базы до нового состояния (включая пакеты, ддл, изменения в данных).
Скрипт руками прогоняется на общей тестовой базе и сохраняется в системе контроля версий.

При сборке собираем все скрипты, прогоняем их на эталонной и релизной базах, сравниваем их схемы с тестовой базой.

Все скрипты собираются в зашифрованный архив-патч, который скармливается самописной тулзе. Тулза при прогонке делает бекап базы, верификацию данных и согласованность версий, прогоняет патч, и в случае ошибки восстанавливается из бекапа. Юзерам нужно только получить файл с патчем, открыть его в тулзе, ввести ключ, и жмакнуть "выполнить". Создание патча со скриптами автоматизировано через Final Builder
4 окт 10, 15:29    [9549347]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить