Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Совместная разработка процедур, пакетов, сведение в один пакет, SVN 
V
    Опции темы
avvo
Дата 20.10.2008, 02:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 11.9.2007

Репутация: 2
Всего: 4



Есть проект, в котором есть база данных, которая есть Oracle.
В этом проекте используются вызовы множества процедур базы данных.
Эти процедуры скомпонованы в пакеты по их функциональной принадлежности (пакеты взаимодействия между БД, пакеты для отдельных клиентов, пакеты для web клиентов итп.).
Разработку этих функций ведут разные люди, в разных местах.
Процедуры и функции пишут используя PL/SQL Developer прямо в базе.
Не смотря на то, что БД несколько, случается так, что несколько разработчиков одновременно ковыряются в одном пакете, одной и той-же тестовой БД. Естественно, кто последний скомпилил, тот и молодец. А тот, кто не последний часть своей работы потерял.

Вопрос, существуют ли способы совместной работы нескольких разработчиков в одном пакете? Черт с ней с тестовой БД, пусть там что-то теряется. Допустим, каждый разработчик сохраняет свои изменения, т.е. DDL пакета со своими последними изменениями, пусть также он знает, какие процедуры он изменил или добавил, существуют ли какие-либо утилиты, которые позволяли бы создавать патч пакета БД?
Т.е. у меня есть DDL процедур, которые я изменил, я это скармливаю такой утилите, а она делает соответствующие изменения в пакете рабочей БД не затрагивая другие процедуры?


PM MAIL   Вверх
DimW
Дата 20.10.2008, 06:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 23
Всего: 44



Цитата(avvo @  20.10.2008,  02:06 Найти цитируемый пост)
существуют ли способы совместной работы нескольких разработчиков в одном пакете


http://notes.rudomilov.ru/2007/01/30/stavi...ion-za-5-minut/
http://mydebianblog.blogspot.com/2008/06/subversion.html
PM MAIL ICQ   Вверх
avvo
Дата 20.10.2008, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 11.9.2007

Репутация: 2
Всего: 4



Цитата(DimW @ 20.10.2008,  06:37)
Цитата(avvo @  20.10.2008,  02:06 Найти цитируемый пост)
существуют ли способы совместной работы нескольких разработчиков в одном пакете


http://notes.rudomilov.ru/2007/01/30/stavi...ion-za-5-minut/
http://mydebianblog.blogspot.com/2008/06/subversion.html

Вы драматизируете. В проекте, естественно, используется SVN. Иначе никак.
Только как его использовать для работы с БД?

Да, я знаю, что для девелопера есть плагины SVN, только они ничего, кроме запуска SVNовских функций прямо из оболочки, не предлагают.

Вопрос в том, как свести отдельные изменения в один пакет?
Поддерживать исходники DDL в SVN? Это тяжеловато и от косяков не спасает.

Может использовать отдельные тестовые пакеты, потом переносить изменения в рабочие? Опять  же, если это все делать вручную, то это опять источник косяков.

Вопрос о совместной работе именно для разработки пакетов БД.
Или все так и мучаются?
PM MAIL   Вверх
Sqlninja
Дата 20.10.2008, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 353
Регистрация: 15.5.2006
Где: San Francisco, CA

Репутация: 13
Всего: 13



user posted image


--------------------
It's better to burn out than to fade away.
PM MAIL WWW ICQ   Вверх
DimW
Дата 20.10.2008, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 23
Всего: 44



Цитата(avvo @  20.10.2008,  08:56 Найти цитируемый пост)
Вы драматизируете. В проекте, естественно, используется SVN. Иначе никак.

как же вы его используете если у вас стоит такая проблема?!

Цитата(avvo @  20.10.2008,  08:56 Найти цитируемый пост)
Только как его использовать для работы с БД?

так же как и для всего остального:
1) забрал актуальную версию из репозитория.
2) исправил код, скомпилил, протестил, сохранил.
3) загрузил опять в рапозиторий.



PM MAIL ICQ   Вверх
avvo
Дата 20.10.2008, 14:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 11.9.2007

Репутация: 2
Всего: 4



Цитата(DimW @  20.10.2008,  11:40 Найти цитируемый пост)
как же вы его используете если у вас стоит такая проблема?!

Для других вещей. Не для БД.


Цитата(DimW @  20.10.2008,  11:40 Найти цитируемый пост)
так же как и для всего остального:
1) забрал актуальную версию из репозитория.
2) исправил код, скомпилил, протестил, сохранил.
3) загрузил опять в рапозиторий.


Ну наверно так и придется. Хотя нужно бы всего немного добавить:
1. Возможность залочить объект на момент писания/тестирования (надо будет присмотреться к SQL Navigator)
Или, как вариант, создание тестовой копии объекта.
2. Вменяемый мержинг при изменении объекта двумя (и более) разными разработчиками.

PM MAIL   Вверх
LSD
Дата 20.10.2008, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата(avvo @  20.10.2008,  15:35 Найти цитируемый пост)
1. Возможность залочить объект на момент писания/тестирования (надо будет присмотреться к SQL Navigator)

Залочить объект в SVN возможно.


Цитата(avvo @  20.10.2008,  15:35 Найти цитируемый пост)
2. Вменяемый мержинг при изменении объекта двумя (и более) разными разработчиками.

Что значит вменяемый?


И вообще, не понятно в чем вопрос. Для остальных языков как-то люди работают коллективно и ничего. Что такого особенного в PL/SQL? Проблема будет только в DDL для модификации базы. Вот тут надо подумать как это организовать.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
avvo
Дата 20.10.2008, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 11.9.2007

Репутация: 2
Всего: 4



Цитата(LSD @  20.10.2008,  15:16 Найти цитируемый пост)
Залочить объект в SVN возможно.

В SVN - да. В базе - нет. Просто возникает ситуация, когда два-три отдельных человека, что-то делают, потом одновременно (почти) компилят, потом долго тупят, почему все не работает, потом орут друг на друга на всю аську, потом, в конце концов договариваются, кто крайний. smile

Цитата(LSD @  20.10.2008,  15:16 Найти цитируемый пост)
Что значит вменяемый?


И вообще, не понятно в чем вопрос. Для остальных языков как-то люди работают коллективно и ничего. Что такого особенного в PL/SQL? Проблема будет только в DDL для модификации базы. Вот тут надо подумать как это организовать. 


Вменяемый - это я хочу такую значит штуку, чтобы например в пакете есть процедуры А, Б, В, Г, Д. Я поковырял пакет, исправил процедуры А->А', Б->Б' и добавил Е. Закомитил.
При этом "другой я", в то же время, поковырял процедуру Г-Г' и добавил Ж. Закомитил.
При этом "третий я" после апдейта получил А', Б', В, Г', Д, Е, Ж. И чтобы второму я не приходилось вручную сводить это в одну файлу.
Аналогично хотелось бы и в DDL таблиц, секвенсов, видов и т.д. иметь мерджинг, который не тупо сводит и сравнивает тексты, а учитывает особенности языка.

При этом для отдельного скрипта отдельной процедуры SVN отлично подходит. Но когда касается пакетов, схем, тогда все ручками.

В других языках, с которыми мне приходилось иметь дело, два разработчика не сидят в одном листинге как правило, поэтому мерджинг - крайняя мера.

Вообще, если честно, этот проект изначально сделан так, чтобы было максимально неудобно. Например, по моему, стоило бы разнести разные функции для разных подсистем по разным пакетам и в такую проблему просто не упираться. Ну да ладно.
PM MAIL   Вверх
ToshaCh
Дата 20.10.2008, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 555
Регистрация: 10.11.2005
Где: Москва, РФ

Репутация: 12
Всего: 26



Цитата(avvo @  20.10.2008,  19:16 Найти цитируемый пост)
В SVN - да. В базе - нет. Просто возникает ситуация, когда два-три отдельных человека, что-то делают, потом одновременно (почти) компилят, потом долго тупят, почему все не работает, потом орут друг на друга на всю аську, потом, в конце концов договариваются, кто крайний. 

Почему два человека одновремеено работают надо одим блоком? Почему они одновременно компилят? Что значит орать, друг на друга, и выяснять кто крайний? 

Если у вас такая ситуация возникает, то надо немдленно гнать в шею вашего менеджера проекта и нанять компетентного специалиста.

Вопрос не имеет отношения к базам данных - это вопрос управления.  

Простите, если грубо, но если хотите зарабатывать умейте организовывать процесс. Даже SVN в некомпетентных руках  превращается в помойку.

Добавлено @ 20:49
Цитата(avvo @  20.10.2008,  19:16 Найти цитируемый пост)
Вменяемый - это я хочу такую значит штуку, чтобы например в пакете есть процедуры А, Б, В, Г, Д. Я поковырял пакет, исправил процедуры А->А', Б->Б' и добавил Е. Закомитил.При этом "другой я", в то же время, поковырял процедуру Г-Г' и добавил Ж. Закомитил.

Каждую процедуру храните отдельно + makefile для сборки пакета, затем вытащили ветку, запустили make  и он вам всё собрал и скомпилил. 

Это сообщение отредактировал(а) ToshaCh - 20.10.2008, 20:50


--------------------
Slackware 12.2 | Linux 2.6.27 | Fluxbox 1.1.1 | Wmii 3 | Opera 9.63 
--
Oracle это не только способ отмывания денег, но и вполне себе преличная база данных.
PM MAIL Jabber   Вверх
LSD
Дата 21.10.2008, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 538



Цитата(avvo @  20.10.2008,  20:16 Найти цитируемый пост)
В SVN - да. В базе - нет. Просто возникает ситуация, когда два-три отдельных человека, что-то делают, потом одновременно (почти) компилят, потом долго тупят, почему все не работает, потом орут друг на друга на всю аську, потом, в конце концов договариваются, кто крайний.

В данном случае, проблема в головах. Какого лешего, они одновременно компилят? Один залочил файл и работает с пакетом, компилит, отлаживает и т.п. Остальные в это время курят. Закончил - закомитил и разлочил файл, и тогда следующий начинает свои эксперименты.


Цитата(avvo @  20.10.2008,  20:16 Найти цитируемый пост)
Вменяемый - это я хочу такую значит штуку, чтобы например в пакете есть процедуры А, Б, В, Г, Д. Я поковырял пакет, исправил процедуры А->А', Б->Б' и добавил Е. Закомитил.
При этом "другой я", в то же время, поковырял процедуру Г-Г' и добавил Ж. Закомитил.
При этом "третий я" после апдейта получил А', Б', В, Г', Д, Е, Ж. И чтобы второму я не приходилось вручную сводить это в одну файлу.

Уж не знаю, чем вас так напугал мержинг. Если менялись разные процедуры, то мержинг и на автомате пройдет нормально, при желании его можно и руками контролировать. Да и сам мержинг это элементарная процедура (если конечно менялись независимые части пакета). Главное держите все объявления пакетов, их тел и т.п. в отдельных файлах и все будет хорошо.


Цитата(avvo @  20.10.2008,  20:16 Найти цитируемый пост)
Аналогично хотелось бы и в DDL таблиц, секвенсов, видов и т.д. иметь мерджинг, который не тупо сводит и сравнивает тексты, а учитывает особенности языка.

Вы по моему сами не понимаете чего хотите. Для всех остальных языков, все обходятся и без синтаксического анализа, а вот для DDL, он обязательно нужен.
Что вы вообще от него хотите? Чтобы если Вася добавил в таблицу поле А, а Петя поле Б, то система сгенерировала скрипт который бы добавлял оба этих поля? smile




А вообще я согласен с ToshaCh, у вас просто плохо организованна совместная разработка, и технологии тут ни при чем. У вас не согласованны действия разработчиков, и вы хотите, чтобы техника делала это за вас.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
avvo
Дата 21.10.2008, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 60
Регистрация: 11.9.2007

Репутация: 2
Всего: 4




ToshaCh, - чертовски прав smile. Эффективный менеджмент, знаете-ли smile.
Просто знаете, когда оказываешься в такой среде эффективного менеджмента, остается надеяться на чудо, что-ли. А их, чудеса, как на зло все разобрали.
Спасибо за ответы, они к сожалению, подтверждают мою изначальную позицию и противоречат настрою руководства smile (ну должна же где-то быть кнопка "решить все вопросы").
Спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0846 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.