Перейти к основному содержимому
Версия: 7.0

Правила: миграция (migration.script)

Правила миграции (migration.script)

  1. Переименование свойства или действия, либо его перенос в другое пространство имён, меняет каноническое имя элемента. Всякий раз, переименовывая или меняя пространство имён существующего элемента, ассистент ОБЯЗАН отразить это изменение в migration.script в той же правке; иначе платформа считает старое и новое имена несвязанными элементами — старый удаляется, а новый создаётся пустым.

  2. Для первичного (DATA) свойства это незаметно разрушительно, и ассистент ОБЯЗАН проявлять особую осторожность. Переименование / смена пространства имён ДОЛЖНЫ быть записаны как изменение STORED PROPERTY (старое каноническое имя -> новое каноническое имя), что переименовывает соответствующую колонку в базе данных и сохраняет её данные. Простое изменение PROPERTY переносит только настройки политики безопасности и рефлексии, но НЕ сохранённые данные.

  3. Без записи STORED PROPERTY при следующем старте сервера старая колонка переименовывается в _DELETED_ плюс её прежнее имя в базе — а если колонка с таким именем уже есть, просто удаляется, — а для нового имени создаётся новая пустая колонка, так что все существующие значения свойства теряются. Ассистент НЕ ДОЛЖЕН переименовывать или переносить DATA свойство в другое пространство имён без добавления этой записи.

  4. Переименование пользовательского класса или его перенос в другое пространство имён ДОЛЖНЫ быть записаны как изменение CLASS, чтобы сохранить его объекты и их данные. Такое переименование класса может также изменить канонические имена его DATA свойств; они не отслеживаются автоматически и ДОЛЖНЫ быть добавлены как отдельные изменения STORED PROPERTY.