DevCraft Документации
Руководства

Схема шлюза БД и автор записи v200.4.1

Как Admin приводит таблицы Cycle к моделям и кто пишется в creator / lastEditor.

Когда схема обновляется сама

Шлюз DatabaseGateway перед работой ORM вызывает SchemaSyncService::ensureSchemaReady().

  1. Сначала накатываются все ещё не применённые файлы в devcraft/src/database/migrations/ (и при включённом debug тоже).
  2. Если в настройках Admin включён debug — отличия схемы и базы применяются «на лету» (SyncTables), новые файлы не появляются.
  3. Если debug выключен — файл изменений пишется только при реальном расхождении и сразу накатывается.

Пока модели не менялись, схема берётся из кэша (devcraft/cache/cycle_orm_schema.ser). Повторные запросы не плодят CREATE и не падают с «таблица уже существует».

Где смотреть автора

У наследников AbstractEntity: поля creator и lastEditor.

  • При создании оба поля = ID текущего пользователя DLE.
  • При правке меняется только lastEditor.
  • ID берётся из $member_id['user_id'], если он больше нуля; иначе пишется 0. Флаги входа не важны.

Запись идёт через поведения Cycle (CreatedByHook, UpdatedByHook). Метод beforeSave() автора больше не ставит.

На этой странице