Тема: 3.0.82: Как правильно делать экспорт-импорт объектов?

Я сделал экспорт объектов из настройки. Потом удалил все объекты. Потом сделал восстановление из бэкапа (есть у меня "дублирующая" настройка, на которой я экспериментирую, я сделал бэкап из "экспериментальной" настройки, потом восстановил из этого бэкапа рабочую настройку).
После этого я хотел сделать импорт сохраненных объектов. Но все объекты напихались в Root, связи между объектами были потеряны.
Что я делаю не так? Мож это вообще как-то по-другому делается?
Как организовать работу по изменению настройки так, чтобы остальных пользователей не касалась "экспериментаторская" деятельность?

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

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

Обычно, дабы не калечить работу пользователей, всё сначала тестируется на копии базы.

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

Да. Но ситуация получается следующая - я сделал копию базы и начал изменять настройку. В это время в оригинальной базе пользователи поизменяли объекты. После того, как я сделал изменения настройки, мне нужно слить 2 базы, причем из моей взять настройку, а из оригинальной взять объекты.
Для решения этой задачи есть 2 варианта:
1. Экспортировать все объекты из оригинальной базы, заменять оригинальную базу на мою и импортировать в мою настройку все сохраненные объекты из оригинальной базы;
2. Экспортировать структуру базы из моей экспериментальной настройки и импортировать ее в оригинальную настройку.
Пока я действую по 1-му варианту. С ним есть проблема:

все объекты напихались в Root, связи между объектами были потеряны

что с этим делать? Это, видимо, глюк?
2-й вариант мне вообще представляется потенциально более опасным 1-го.

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

Вообще, на рабочей базе это обычно делается либо вечером, либо в выходные, когда никто не работает  :) (это так... совет)

Если корректировок не много, то просто: открывается тестовая база, одновременно открывается рабочая база... и из тестовой в рабочую делается copy-paste.  ;)

P.S. Сейчас придёт Император и расскажет, как он использует свой дампер-лоадер скриптов.

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

Сейчас придёт Император и расскажет, как он использует свой дампер-лоадер скриптов

Это хорошо  :)
Т.е. лучше именно структуру базы и скрипты переносить, а объекты не трогать, т.е. действовать по плану №2?

2. Экспортировать структуру базы из моей экспериментальной настройки и импортировать ее в оригинальную настройку

?
А как правильно структуру переносить? Там ведь не только скрипты, а еще и ObjectDef'ы, формы, запросы, классификаторы и прочая мелочевка вроде статусов и подписей. Это все ручками переносить надо?

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

Нет, 2-й вариант не пойдет - это 100% - слоишком много проблем с дублированием и т.д. Одни колапсы  :(

(изменено: Slava.Coder.Vrn, 5 апреля 2007г. 17:18:37)

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

Нет, 2-й вариант не пойдет - это 100% - слоишком много проблем с дублированием и т.д

Ы.ы.ы. Дублирование чего??? Ниче не понимаю...

В опщем, сношу в одно место все условия задачи  :)
Я работаю над изменением настройки в своей экспериментальной версии.
Пользователи работают на оригинальной настройке и изменяют объекты.
В конце дня мне нужно слить вместе свои настройки и пользовательские объекты
Я вижу 2 кардинально разных пути
1. Экспортировать все объекты из оригинальной базы, заменять оригинальную базу на мою и импортировать в мою настройку все сохраненные объекты из оригинальной базы;
2. Экспортировать структуру базы из моей экспериментальной настройки и импортировать ее в оригинальную настройку.
Пока я пытался действовать по 1-му варианту. С ним есть проблема: все объекты напихались в Root, связи между объектами были потеряны (пользуюсь "штатным" средством экспорта/импорта из меню TDMS)

Как правильно решается данная задача?

ЗЫЖ Пока не рассматриваем извращенные варианты "крайностей" - 1) запоминание на бумажке мест правок с последующим ручным переносом; 2) написание скрипта/отдельного приложения для перетаскивания всех пользовательских объектов из их настройки в мою настройку с измененной структурой
Хотя, 2-й извращенный вариант я уже реализовал для перетаскивания объектов из 2-ки в неидентичную ей настройку 3-ки. Гемморой тот еще  :)

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

Для внесения изменений в настройку TDMS разработаны утилиты:

  • Утилиты выгрузки и загрузки скриптов для TDMS 2.0, TDMS 3.0 (отдельный релиз позволяет выгружать помимо скриптов также и описания форм ввода). Я пользуюсь данной утилитой уже более полугода. Она позволяет использовать внешний редактор кода, а также использовать системы учета версий VSS, CVS … и т.п.

  • Утилиты выгрузки и загрузки структуры для TDMS 2.0, TDMS 3.0. Позволяют выгружать и загружать элементы настройки и их связи в текстовый файл. Формат файла приспособлен для сравнения структуры двух настроек, поиска отличий, обзора структуры. Данная технология наката изменений уже неоднократно применялась для удаленной загрузки изменений, однако в данный момент все утилиты находятся в опытной эксплуатации и тестировании!

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

Очень интересно.
Могу принять активное участие в тестировании  :)

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

В конце дня мне нужно слить вместе свои настройки и пользовательские объекты

ну-ну.... однажды.... давным-давно.....на одном предприятии......
нам не хватило 3-х дней, чтобы перелить всю базу  :)

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

3-х дней

Где вы 3 дня взяли??? Или это дело было на 8-го марта?  :)
ЗЫ: Я с помощью своей приблуды сейчас выливаю данные за 10-12 мин. Заливка идет дольше - порядка 20 мин. В базе около 1000 объектов.

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

Slava.Coder.Vrn пишет:

Где вы 3 дня взяли??? Или это дело было на 8-го марта?  :)
ЗЫ: Я с помощью своей приблуды сейчас выливаю данные за 10-12 мин. Заливка идет дольше - порядка 20 мин. В базе около 1000 объектов.

:)))) Да, был какой-то праздник.  :)

1000 объектов ?????????   :lol:  :lol:  :lol:  :lol:  :lol:
Тогда странно, что 20 минут - оч. много  :))

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

1000 объектов ?????????     
Тогда странно, что 20 минут - оч. много )


Да это я просто упомянул о своей приблуде, о которой писал в этой теме. Вообще, можно тягать объекты с ее помощью, правда ее нужно жестко программировать на структуры данных, что тоже очень неудобно.
Вообще, в идеале нужен какой-то инструмент, который позволяет подключится сразу к 2-м настройкам (базам) и позволяет задавать через UI правила навроде "объект N 1-й настройки соответ объекту M 2-й настройки", "взять атрибут A1 объекта N и записать значение в атрибут A2 объекта M" и т.д.
Но это уже очень серьезная приблуда получается. Я бы смог написать на каком-нить С или Делфи, да времени на это нет.

(изменено: Anatoly, 6 апреля 2007г. 13:27:55)

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

Slava.Coder.Vrn пишет:

Вообще, в идеале нужен какой-то инструмент, который позволяет подключится сразу к 2-м настройкам (базам) и позволяет задавать через UI правила навроде "объект N 1-й настройки соответ объекту M 2-й настройки", "взять атрибут A1 объекта N и записать значение в атрибут A2 объекта M" и т.д.

Да? Возьмётесь за написание хотя бы ТЗ? Когда напишите хотя бы оглавление, тогда поговорим  :)))

Но это уже очень серьезная приблуда получается. Я бы смог написать на каком-нить С или Делфи, да времени на это нет.

Сможете написать искуственный интеллект?? ;)

(изменено: Slava.Coder.Vrn, 6 апреля 2007г. 16:09:35)

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

Возьмётесь за написание хотя бы ТЗ? Когда напишите хотя бы оглавление

А че оглавление? Как там оно составляется...
1. Общее описание
2. Требования к конфигурации оборудования
3. Требования к квалификации обслуживающего персонала
4. ...
Вроде этого?   :D
Надо подумать. Вообще, дать словесный алгоритм работы и главные элементы UI могу хоть сейчас  :)

Сможете написать искуственный интеллект??

Я так думаю, там все должно быть параллельно и перпендикулярно  :)

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

Я так думаю, там все должно быть параллельно и перпендикулярно

Честно говоря, я тоже так думал  :))

То оглавление, которое Вы привели - это не оглавление  :)))

Надо что-то типа:

101. Перенос прав доступа
102. Работа с связями объектов
103. Работа с объектами, созданными ошибочно
104. Ссылки на объекты
105. А что делать, если объект, на который ссылается другой объект еще не создан ?  :)))

Это так... самые маленькие проблемз  :)))

(изменено: Slava.Coder.Vrn, 6 апреля 2007г. 17:45:56)

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

То оглавление, которое Вы привели - это не оглавление

Очень даже оглавление. По ГОСТу  :D  :D  :D Щютка.

102. Работа с связями объектов
104. Ссылки на объекты
105. А что делать, если объект, на который ссылается другой объект еще не создан ?

Это у меня уже сделано. Надо просто строить ассоциативный массив хэндлов (старый - новый для одного и того же объекта) и еще один массив "новый хэндл подчиненного объекта" - "старый хэндл главного объекта". Чтобы кодировать тип связи еще одно поле в массиве завести надо.

103. Работа с объектами, созданными ошибочно

Это что значит?

101. Перенос прав доступа

Это я не делал (но, возможно, в длижайшие дни буду). Видимо, тут просто нужен такой же ассоциативный массив по пользователям и ролям.

(изменено: Anatoly, 6 апреля 2007г. 17:05:17)

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

"используется в"
"унаследовано от"  ;)
а еще используется в таблице там  :)))

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

"используется в"
"унаследовано от"
а еще используется в таблице там ))

Так смысл-то везде одинаковый. Есть подчиненный объект, а есть главный.

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

Я тут неправильно запостил... Я хотел спросить

103. Работа с объектами, созданными ошибочно

Что это значит?
Конечно, я не утверждаю, что это как 2 пальца... Но все это вполне формализуемо. TDMS ведь не позволяет сделать "все что угодно". Значит и правила переноса объектов не могут быть "какие угодно", следовательно можно написать алгоритм  :)

(изменено: Slava.Coder.Vrn, 6 апреля 2007г. 17:53:11)

Re: 3.0.82: Как правильно делать экспорт-импорт объектов?

"используется в"
"унаследовано от"
а еще используется в таблице там ))

Кстати, закралась мысль. Вы о экспорте-импорте объектов говорите, или о экспорте-импорте, так сказать, структуры настройки? Если че, я именно про экспорт-импорт объектов  :) Имхо, это проще, чем структуру настройки таскать из базы в базу. Да и решение этой задачи способно решить все проблемы обновления настройки (по крайней мере те проблемы, которые я могу себе представить  :) )
И вообще, таскать структуру настройки из базы в базу - бесперспективняк. Потому как по ходу дела все равно придется перестраивать объекты под новую структуру настройки. Т.е., получается, задача экспорта-импорта структуры настройки включает в себя задачу экспорта-импорта объектов.
Вот.