Silverstripe - Как создать страницы как часть развертывания? - PullRequest
0 голосов
/ 12 марта 2019

У меня есть веб-приложение на основе Silverstripe, которое находится в активной разработке и регулярно развертывается в наших средах разработки, контроля качества, UAT и т. Д.На данный момент у нас есть автоматизированные задания для тех развертываний, которые копируют файлы, устанавливают композитор и запускают dev / build все из командной строки, чтобы мои изменения разработки можно было легко внедрить в наши различные среды.

Чтоотсутствует то, что при создании новой страницы мне нужно вручную перейти в среду после развертывания и войти в / admin Страницы -> Добавить новый -> Выбрать тип страницы -> Заполнить форму и нажать Опубликовать.

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

Заранее спасибо,

1 Ответ

2 голосов
/ 13 марта 2019

Существуют различные способы «развертывания страниц».

Если вы просто хотите отразить вашу базу данных разработчика и ресурсы, вы можете использовать sspak

Если ваш модульЕсли вы хотите убедиться, что некоторые страницы или объекты данных по умолчанию существуют, вы можете использовать метод requireDefaultRecords() для ваших объектов DataObject.Это запускается на каждом dev / build и проверяет, должно ли оно что-то добавить.В блоке DataObject::requireDefaultRecords() указано:

Добавить записи по умолчанию в базу данных.Эта функция вызывается всякий раз, когда создается база данных, после того, как все таблицы базы данных созданы.Перегрузите это, чтобы добавить записи по умолчанию при построении базы данных, но убедитесь, что вы вызываете parent :: requireDefaultRecords ().

@ использует DataExtension-> requireDefaultRecords ()

Я часто добавляюданные локально, когда я не знаю фактическое содержание страниц.Но для настройки заданной структуры сайта или структуры данных существует модуль с именем Populate , в котором вы можете определить свои данные в файлах yml и запустить задачу сборки, чтобы добавить их в базу данных.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...