|
Тулза для воссоздания БД большого композитного приложения
|
|||
---|---|---|---|
#18+
Есть композитное приложение в разработке, где каждый компонент имеет свои объекты БД (или отдельную БД) + определенную последовательность выполнения sql файлов (у некоторых нужно сначало сгенерить sql для секьюрити (статические права, роли) и т.п., а только потом выполнять файлы sql). Все компоненты лежат в отдельных папках, файлы и(или) папки с файлами иногда должны выполнятся в строго указанной последовательности. В тексте sql есть placeholders, куда нужно вставлять значения, задаваемые на самом высоком уровне (например название схемы, куда лить объекты или БД куда подключаться). Некоторые компоненты не должны входить в "сборку" по признаку, который также указывается на верху. Чтобы можно было генерить БД только для нужного функционала. Вопрос: есть ли тулза, где: *) можно создать проекты для каждого такого компонента. *) проект должен поддерживать включение как отдельного файла, так и папки, другого подпроекта, куска голого SQL прямо в файле проекта. Состав файлов папки может быть жестко указан или просто *.sql. *) каждый проект должен задавать строгую последовательность выполнения sql файлов *) поддерживается динамическая замена части sql на указанное значение. Т.е. поддерживаются переменные проекта. *) каждый такой проект и каждую его часть (включаемый файл/папку) можно было отключить по признаку (переменная?). Кто чем пользуется для воссоздания БД при девелопменте, когда у каждого разработчика должны быть своя копия БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2011, 15:43 |
|
Тулза для воссоздания БД большого композитного приложения
|
|||
---|---|---|---|
#18+
ARMSoftВопрос: есть ли тулза, где:По описанным вами признакам нужен С-прекомпайлер + make ARMSoftКто чем пользуется для воссоздания БД при девелопментеНаверное, зависит от СУБД и от используемых средств разработки. Я использую для воссоздания БД на локальной машине восстановление из бакапа. Но вообще я редко использую локальную БД (и не видел, чтобы это было хоть как-то распространено). ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2011, 18:12 |
|
Тулза для воссоздания БД большого композитного приложения
|
|||
---|---|---|---|
#18+
А что такое пре компайлер и как он поможет, если у меня пачка sql-файлов? Бекапы, аттач чистой прегенеренной БД и т.п. не хочется юзать, т.к. в идеале хотелось бы юзать такую тулзу в деплойменте для создания/обновления БД, т.е. девелопмент будет идентичен деплойменту с отслеживание возможных проблем. Локальную БД каждый дев. ведет для уменьшения взаимных блокировок и багов при разработке. Каждый варится в своей БД до выполнения задачи, а потом сливает изменения+код в СВН. В итоге работа идет в разы быстрее одной БД на всех. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2011, 19:25 |
|
Тулза для воссоздания БД большого композитного приложения
|
|||
---|---|---|---|
#18+
Ах да, забыл: нужна поддержка MSSQL & Postgres как минимум. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2011, 19:38 |
|
Тулза для воссоздания БД большого композитного приложения
|
|||
---|---|---|---|
#18+
ARMSoftА что такое пре компайлерМожет, я не так называю... http://en.wikipedia.org/wiki/Preprocessor Например, макросы для С ARMSoftкак он поможет, если у меня пачка sql-файлов?Им можно сделать "В тексте sql есть placeholders, куда нужно вставлять значения, задаваемые на самом высоком уровне" А саму загрузку с последовательностимя, зависимостями и разными вариантами целей сделает make ARMSoftБекапы, аттач чистой прегенеренной БД и т.п. не хочется юзать, т.к. в идеале хотелось бы юзать такую тулзу в деплойменте для создания/обновления БД, т.е. девелопмент будет идентичен деплойменту с отслеживание возможных проблем.Так используйте просто деплой, такой-же, как для продакшена. Только непонятна цель, вы её не озвучили, только "просто хочется". Почему всё-таки для девелоперских локальных баз не использовать восстановление из бакапа? Просто разработчики на локальных базах будут отходить от правил процесса разработки и деплоя, в результате базы будут отличаться от той, которая в проекте. Удобнее, чтобы девелоперская база обновлялась ежесуточным (например) билдом и деплоем, а к себе локально разработчики получали её из бакапа. ARMSoftЛокальную БД каждый дев. ведет для уменьшения взаимных блокировок и багов при разработке. Каждый варится в своей БД до выполнения задачи, а потом сливает изменения+код в СВН. В итоге работа идет в разы быстрее одной БД на всех.Да можно и так, только я повторюсь - никто так не делает. Не вижу, почему работа должна идти быстрее в разы :-) Неужели только из за блокировок и багов? Вроде и так ничего не мешает, люди же работают над разными задачами. Хотя в общем ничего невозможного нет, дело вкуса - может, это у вас такая специфика проекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2011, 20:09 |
|
Тулза для воссоздания БД большого композитного приложения
|
|||
---|---|---|---|
#18+
авторТолько непонятна цель, вы её не озвучили, только "просто хочется". Почему всё-таки для девелоперских локальных баз не использовать восстановление из бакапа? потому что бекап нужно еще сделать, а есть только набор sql-файлов в СВН для создания БД с нуля + очень динамичная разработка. Т.е. Петя ждет пока Вася доделает фичу1, потому что фича2 зависит от нее. Как только Вася закомитил фичу1 в СВН, Петя забирает изменения Васи и пересобирает у себя БД для фичи2. Это очень быстро, а бекап (для восстановления из) нужно еще ждать. авторПросто разработчики на локальных базах будут отходить от правил процесса разработки и деплоя, в результате базы будут отличаться от той, которая в проекте. хм, с чего бы это они будут отходить от правил и базы будут отличаться? К тому же деплой разработчики не делают, их это не касается. Их дело залить новый код БД + процедуры миграции, если была модификация БД, по которому потом будет составлен дифф БД для накатки у клиента. авторУдобнее, чтобы девелоперская база обновлялась ежесуточным (например) билдом и деплоем, а к себе локально разработчики получали её из бакапа. Мы пробовали вариант 1 база много девов - результат жуть в плане взаимоблокировок и багов из-за накладывающихся изменений двух и более девов на один объект БД. +резолвить конфликты СВН, если на измененный код одного дева перезалили уже десять раз код другие - то еще удовольствие. Также вариант с блокированием файла на время редактирования не подходит, т.к. тормозит других. авторДа можно и так, только я повторюсь - никто так не делает. как минимум это делаем мы и нам так удобнее/надежнее. авторНе вижу, почему работа должна идти быстрее в разы :-) Неужели только из за блокировок и багов? Вроде и так ничего не мешает, люди же работают над разными задачами. Именно из-за блокировок и багов родимых. Представьте проект 100+ проектов с солюшине в которых процентов 20 - отдельные подпроекты баз + девелоперы не узкоспециализированные, т.е. прав все всё, т.е. "люди же работают над разными задачами" в 99% нет, задачи пересекаются функционалом почти всегда. Но суть не в этом. Хочеться задать xml-ем порядок выполнения скриптов и пнуть консольку какую нибудь. Неужто никто такого не делал? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2011, 20:50 |
|
Тулза для воссоздания БД большого композитного приложения
|
|||
---|---|---|---|
#18+
ARMSoftНо суть не в этом. Хочеться задать xml-ем порядок выполнения скриптов и пнуть консольку какую нибудь. Неужто никто такого не делал?Я же вам назвал инструмент. ARMSoftпотому что бекап нужно еще сделать, а есть только набор sql-файлов в СВН для создания БД с нуля + очень динамичная разработка. Т.е. Петя ждет пока Вася доделает фичу1, потому что фича2 зависит от нее. Как только Вася закомитил фичу1 в СВН, Петя забирает изменения Васи и пересобирает у себя БД для фичи2. Это очень быстро, а бекап (для восстановления из) нужно еще ждать.Ну, если нужно ТАК быстро, если роль играют часы, минуты, тогда да :-) ARMSoftхм, с чего бы это они будут отходить от правил и базы будут отличаться?Ну, просто в графической утилите что-то в базе поправят, вне проекта, мало-ли. Обычно так бывает. ARMSoftК тому же деплой разработчики не делают, их это не касается. Их дело залить новый код БД + процедуры миграции, если была модификация БДИзменение базы (например, своей локальной) называется деплоем. ARMSoftТакже вариант с блокированием файла на время редактирования не подходит, т.к. тормозит других.Это вы про файл, например, объекта? То есть интенсивность разработки настолько высока, что нужно обеспечить изменение структуры одной таблицы одновременно несколькими разработчиками, и потом автоматически мержить изменения? Круто! ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2011, 21:04 |
|
Тулза для воссоздания БД большого композитного приложения
|
|||
---|---|---|---|
#18+
авторЯ же вам назвал инструмент. у нас есть почти такие костыли, не подходит. Надо что-то универсальное, у которого достаточно поправить пару конфиг файлов, если исходные файлы перенесли или добавили. авторНу, если нужно ТАК быстро, если роль играют часы, минуты, тогда да :-) так так у всех, нет!? На таск есть время, часто в часах, и будь добр вложиться. авторНу, просто в графической утилите что-то в базе поправят, вне проекта, мало-ли. Обычно так бывает. как раз с локальными базами у каждого дева это не проблема. У нас БД правится в Manag Studio, потом тулза генерит исходники нужных объектов БД в файлы, которые девы заливают в СВН. Т.е. дев может править БД хоть через sqlcmd, ничего это не нарушит/изменит. авторИзменение базы (например, своей локальной) называется деплоем. у нас деплой, это поставка версии клиенту, т.ч. мы говорим о разных процессах. авторЭто вы про файл, например, объекта? То есть интенсивность разработки настолько высока, что нужно обеспечить изменение структуры одной таблицы одновременно несколькими разработчиками, и потом автоматически мержить изменения? Круто! да, такое очень часто случается и по опыту - дешевле (быстрее) резолвить конфликты, которые бывают не часто, чем 5 человек будут курить из-за одного. зы: что-то мы скатились в оффтоп, пойду гуглить, может повезет... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2011, 21:14 |
|
Тулза для воссоздания БД большого композитного приложения
|
|||
---|---|---|---|
#18+
ARMSoftавторЯ же вам назвал инструмент. у нас есть почти такие костыли, не подходит. Надо что-то универсальное, у которого достаточно поправить пару конфиг файлов, если исходные файлы перенесли или добавили.Я вас уверяю, что принципиально нового ничего изобрести нельзя. Любая система, которую вы найдёте, будет работать и выглядеть именно так. Ну и препроцессор и мэйк - это не самодельные костыли, это промышленный стандарт. Можно написать костыль, можно использовать промышленное решение. ARMSoftавторНу, если нужно ТАК быстро, если роль играют часы, минуты, тогда да :-) так так у всех, нет!? На таск есть время, часто в часах, и будь добр вложиться.Нет, с минутами не встречал :-) Просто вы сравниваете восстановление бакапа и локальный билд с деплоем. Так билд приложение (вот такая сборка файлов с препроцессингом) может занимать на билдовом сервере полчаса, а на локальной рабочей станции боюсь сказать сколько. А уж деплой всех изменений в 20 базах на локальной машине... :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.09.2011, 00:05 |
|
Тулза для воссоздания БД большого композитного приложения
|
|||
---|---|---|---|
#18+
ARMSoft, IMHO - скорее всего у Вас не Приложение (ИС по ГОСТ), а Часть приложения - база данных - непонятен термин "компонент" - нет ни слова об IDE для разработки БД .... хотя вот есть слово о "Manag Studio". - я с ним не работал. ОН заточен под БД? Разве в нём нет понятия Проект? -------------- автор ModelMart - CASE-средство для рабочих групп Model Mart - система управления моделями для групповой разработки при создании приложений для архитектуры "клиент-сервер", хранилищ данных, Web. Обеспечивает многопользовательский доступ к моделям, созданным с помощью ERwin и BPwin. Модели хранятся на центральном сервере и доступны для всех участников группы проектирования, при этом обеспечивается возможность коллективного создания сложных и объемных моделей. Основные особенности ModelMart : поддерживается несколько версий модели, участники коллектива оектировщиков имеют доступ к самой последней версии модели и могут видеть результаты сделанных изменений; используются гибкие средства разграничения доступа; пользователь может получить список различий между двумя версиями модели и, при необходимости, вернуться к предыдущей версии; производится анализ влияния вносимых в модель изменений; поддерживается возможность слияния нескольких моделей в одну; обеспечивается гибкая блокировка доступа к моделям; специальное средство интеллектуального разрешения конфликтов автоматически идентифицирует любые конфликты, возникающие при одновременной модификации одной и той же модели несколькими пользователями. ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2011, 10:47 |
|
|
start [/forum/topic.php?fid=33&msg=37456858&tid=1547977]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 129ms |
0 / 0 |