2016-08-06 3 views
0

В моем расширении TYPO3 я использую внешнюю таблицу. Я создал 2 представления, которые предоставляют данные этой таблицы в соответствии с требованиями моего расширения.Расширение TYPO3: создание представления базы данных во время установки

Вопрос в том, как эти представления могут быть созданы во время установки?

Представления, определенные в «ext_tables.sql», включены в процедуру установки.

Я попытался использовать файл «ext_tables_static + adt.sql». Этот вариант работает только для операторов INSERT.

Единственное, что я должен работать это вариант, описанным here использование сигнала гнездо диспетчера (звучит сложно, но это на самом деле нет! Предоставлено документации очень хорошо).

Но я не могу поверить, что для решения таких проблем нет никакого родного способа (например, ext_tables.sql).

ответ

1

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

  • В результате я использовал крючок, о котором вы упомянули, и прочитал и выполнил все Configuration/SQL/*.sql с моего расширения.
  • Существует способ изменения схемы SQL во время выполнения, но он ограничен обычными операторами CREATE TABLE (псевдо). Использовать сигнал TYPO3\CMS\Install\Service\SqlExpectedSchemaService - tablesDefinitionIsBeingBuilt для этого. Используется в TYPO3 core в TYPO3\CMS\Core\Category\CategoryRegistry::addCategoryDatabaseSchemaToTablesDefinition
  • Возможно, переключатель TYPO3 на doctrine/dbal изменит ситуацию. Как вы можете see под путь миграции в ...

Имейте в виду, что нет никакого способа, чтобы научить установить в инструменте анализатор базы данных ваши мнения, так что будет держать нытье вам об удалении их.

Смежные вопросы