SilverStripe 4 с fluent: «Таблица ‘ss4_project.Member_Localised’ не существует»

#silverstripe #silverstripe-4

Вопрос:

У меня есть свежий проект с использованием SilverStripe 4.8 и fluent 5.0.0. Я добавил расширение для участника и расширение fluent с полями для перевода:

 SilverStripeSecurityMember:
  extensions:
    - MemberExtension
    - TractorCowFluentExtensionFluentExtension
  translate:
    - ShortDesc
    - Description
 

Кажется довольно стандартным, но я получаю Table 'ss4_project.Member_Localised' doesn't exist во время разработки/сборки. Я пробовал без полей перевода, а также в другой конфигурации, загруженной после расширения участника. Не повезло.

У меня такое чувство, что я упускаю что-то очевидное.

Любые подсказки будут оценены по достоинству.

Комментарии:

1. Похоже, что-то еще хочет запросить участника до создания локализованной таблицы. Если в вашей среде разработки установлен xdebug, вы увидите обратный путь. Там вы должны быть в состоянии определить источник запроса участника.

2. @wmk Существует защита таблиц для основных таблиц, о которой я не знал. Этот ответ тракторкоу указал мне в правильном направлении: github.com/tractorcow-farm/silverstripe-fluent/issues/725

Ответ №1:

На Github у меня есть следующее решение:

 Security::force_database_is_ready(false); // only during dev/build
 

для временного переключения защиты основной таблицы.

Для получения более подробной информации см. https://github.com/tractorcow-farm/silverstripe-fluent/issues/725