|
![]() |
#1 |
Участник
|
Цитата:
Но мне теперь ближе свое изобретение. Наверно потому что свое. И потому что экономит время разработчиков. |
|
![]() |
#2 |
Administrator
|
Вот это вот утверждение сильно зависит от компании. Потому что идентификаторы объектов могут храниться в большом количестве таблиц и в большом количестве записей. Перебить все данные в условном SysDataBaseLog - это явно небыстро.
Перебить все данные, где хранится контейнер с сохраненным запросом (Query) - тоже небыстро. Это только навскидку я вспомнил - про места хранения ID-шников. В итоге получается, что преобразование базы - это долго, а если этого не делать - то скопированная база будет некорректная с т.з. данных прода. Поэтому да, экономия времени разработчиков есть в той части, что им не приходится перетаскивать объекты. Однако я бы конечно предпочёл бы полноценную копию БД - т.к. на ней гораздо корректнее тестировать. Я к тому, что экономя время разработчика - нельзя забывать о времени консультанта. Если его время увеличивается - то это в общем случае не ведет к общей экономии времени разработки. А компания компании рознь - кто-то может организовать несколько индивидуальных виртуалок с копией рабочей БД, а у кого только бекап 3 дня делаться будет. И в условиях ограниченности возможностей тестирования - конечно выбираешь такой подход, который бы лучше подходил под реалии. А идея интересная, спасибо!
__________________
Возможно сделать все. Вопрос времени |
|
![]() |
#3 |
Участник
|
Цитата:
Насчет Query не понял вашу мысль. Вы имеет в виду что бинарные объекты могут в себе содержать ссылки по идентификаторам и их тоже надо обрабатывать ? Если они хранятся в бинарном виде в базе с бизнесданными (SysLastValue, Batch.Parameters, etc) то тем лучше для нас - нам не придется их трогать. А если в модели, то это может быть проблемой. Придется пересоздать / обновить. Но с таким примером я пока не сталкивался. Да! Так мы и не будем этого делать при предлагаемом подходе. Profit ! |
|
![]() |
#4 |
Administrator
|
Цитата:
Сообщение от Logger
![]() Насчет Query не понял вашу мысль. Вы имеет в виду что бинарные объекты могут в себе содержать ссылки по идентификаторам и их тоже надо обрабатывать ? Если они хранятся в бинарном виде в базе с бизнесданными (SysLastValue, Batch.Parameters, etc) то тем лучше для нас - нам не придется их трогать.
Да, их можно не трогать, но тогда мы не сможем (условно на DEV) увидеть распакованные эти бинарные данные. Безусловно, конкретно для Batch / SysLastValue / SysDataBaseLog эта информация может быть и не нужна, но теоретически могут быть ситуации, когда для целей разработки эта информация может понадобиться. Собственно именно поэтому я ратую за полную копию данных и приложения - в этом случае гарантированно получается полная копия рабочей среды и любые какие-бы ни были задачи для разработчиков - они всегда заведомо могут быть реализованы на данных DEV-системы в условиях, максимально приближённых к реальности
__________________
Возможно сделать все. Вопрос времени |
|
![]() |
#5 |
Участник
|
Цитата:
Мы не сможем их увидеть распакованными на DEV если идентификаторы в DEV модели отличаются от идентификаторов Prod-модели. Так я с этого и начал обсуждение - чтобы выравнивать идентификаторы DEV и PROD моделей. Если их выровнять как я предложил то и проблем с распаковкой не будет. |
|
![]() |
#6 |
Administrator
|
Цитата:
Сообщение от Logger
![]() Мне кажется здесь какое то недопонимание.
Мы не сможем их увидеть распакованными на DEV если идентификаторы в DEV модели отличаются от идентификаторов Prod-модели. Так я с этого и начал обсуждение - чтобы выравнивать идентификаторы DEV и PROD моделей. Если их выровнять как я предложил то и проблем с распаковкой не будет. Если так - то всё ок. Действительно у меня было недопонимание. Единственное что в таком случае интересно... так это ситуация типа внешних кодов ExtCode*-таблицы, когда в релейшне прописывается код таблицы. Я то в таких случаях как делал.... Писал код на DEV, затем переносил на STAGE и там менял ID-шники таблицы в Relation. Затем STAGE "уезжал" на PROD, а когда DEV (приложение + БД) заменялось полностью с PROD-а - то само собой - эта проблема меня уже не беспокоила. В Вашем скрипте - эта ситуация точно не учтена и изменение IDшников объектов не поменяет значения в релейшнах. Ну... насколько я понял. Верно?
__________________
Возможно сделать все. Вопрос времени Последний раз редактировалось sukhanchik; 15.06.2023 в 23:07. |
|
![]() |
#7 |
Участник
|
Цитата:
Цитата:
Сообщение от sukhanchik
![]() Единственное что в таком случае интересно... так это ситуация типа внешних кодов ExtCode*-таблицы, когда в релейшне прописывается код таблицы. Я то в таких случаях как делал.... Писал код на DEV, затем переносил на STAGE и там менял ID-шники таблицы в Relation. Затем STAGE "уезжал" на PROD, а когда DEV (приложение + БД) заменялось полностью с PROD-а - то само собой - эта проблема меня уже не беспокоила.
... В Вашем скрипте - эта ситуация точно не учтена и изменение IDшников объектов не поменяет значения в релейшнах. Ну... насколько я понял. Верно? Но, если связь сделана как ExtCode* табличках (а там использован Normal relation, просто связь идет на фиктивное поле TableId связанной таблички) то думаю, что все будет хорошо. Надо будет протестировать конечно. Но должно быть норм. А зачем вы явно константу ставили вместо ссылки на поле TableId ? Какой-то баг обходили ? Скрипт на самом деле не совсем мой. Я просто взял стандартный код и исправил в нем ошибки. Но конечно сильно все перепахал. Так что как бы и мой теперь. |
|
Теги |
ax2012, ax2012r3, axutil, idkeep, sysupgradeexportids |
|
|