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

Нравится

8 комментариев

Без конфликтов обойтись не получится. Думаю, лучший способ - методично очищать таблицу за таблицей с помощью запросов DELETE * FROM tbl_... в SQL Server Management Studio; в случае возникновения конфликта в сообщении будет указано, какая таблица "мешает" удалению, - в этом случае удаляем записи из нее, либо же (если очищать связанную таблицу не нужно) обнулить запросом UPDATE tbl_... SET Field_Name = NULL поле связи в таблице и выполнить запрос на удаление ещё раз. Так надёжнее всего.

Конечно же, нельзя забывать, что нужно оставить как минимум по одной записи в таблицах tbl_Contact и tbl_Account, а также лицензии для этого пользователя. Иначе после очистки невозможно будет зайти в систему.

Как вариант кнопка "Удалить все" в каждом из разделов неплохо помогает, но со связанными записями помучаться придется тоже, да...

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

"Александр Кудряшов" написал:Кстати, по случаю спрошу официальную позицию Terrasoft (с т. зрения соблюдения лицензии) одобряется использование одной и той же базы в виде нескольких копий для нескольких юр. лиц? Вроде бы раньше был такой пунктик об ограничениях на эксплуатацию нескольких копий базы - или ошибаюсь?

По моему есть такой пункт в лицензионном соглашении.

Можно написать скрипт, который пробегается только по таблицам, которые не "системные" и не "справочники". Отключает констрейнты, удаляет все и включает констрейнты.

Олег а вот вопрос, вы говорите, что нужно оставить как минимум по одной записи в таблицах tbl_Contact и tbl_Account, а также лицензии для этого пользователя.
У нас ситуация следующая для данного нового юрлица будут заказанны новые конкурентные лицензии. В этом случае я понимаю что не надо оставлять одну запись пользователя.

"Лабьяк Олег Игоревич" написал:Иначе после очистки невозможно будет зайти в систему.

Исключительно из этих соображений :).

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

"Глова Сергей" написал:Можно написать скрипт, который пробегается только по таблицам, которые не "системные" и не "справочники".

Мне кажется, будет сложно сформировать правило, которое определяет системные таблицы и справочники. Перечислять разве что.

К тому же, есть разделы, на которые "завязаны" системные настройки ("Шаблоны сообщений", "Отчёты", "Запросы" и т.д.). Удалять эти записи было бы нежелательно, а ни к справочникам, ни к системным их не отнесёшь.

"Лабьяк Олег Игоревич" написал:Мне кажется, будет сложно сформировать правило, которое определяет системные таблицы и справочники. Перечислять разве что.
К тому же, есть разделы, на которые "завязаны" системные настройки ("Шаблоны сообщений", "Отчёты", "Запросы" и т.д.). Удалять эти записи было бы нежелательно, а ни к справочникам, ни к системным их не отнесёшь.

Я просто думаю у сотрудников Террасотф есть наработки (скрипт) по этапу очистки базы от тестовых данных для сдачи в опытную эксплуатацию :wink:. А там уже и списки таких таблиц должны быть.

Лично я считаю, что лучше перестраховаться, чем удалить лишнее :smile:. Особенно если база с доработками.

Показать все комментарии