Silverstripe-如何在部署中创建页面?

Silverstripe-如何在部署中创建页面?,silverstripe,silverstripe-4,Silverstripe,Silverstripe 4,我有一个基于silverstripe的web应用程序,正在积极开发中,并定期部署到我们的开发、QA、UAT等环境中。目前,我们已经为那些复制文件、执行composer安装并从命令行运行dev/build的部署提供了自动化作业,以便可以轻松地将我的开发更改部署到各种环境中 缺少的是,当我创建一个新页面时,我必须在部署后手动转到环境并登录到/admin Pages->Add new->Select page Type->Fill the form并单击Publish 有没有办法使这一过程自动化?我在

我有一个基于silverstripe的web应用程序,正在积极开发中,并定期部署到我们的开发、QA、UAT等环境中。目前,我们已经为那些复制文件、执行composer安装并从命令行运行dev/build的部署提供了自动化作业,以便可以轻松地将我的开发更改部署到各种环境中

缺少的是,当我创建一个新页面时,我必须在部署后手动转到环境并登录到/admin Pages->Add new->Select page Type->Fill the form并单击Publish

有没有办法使这一过程自动化?我在文档中找不到任何信息,或者在定义这些页面存在的代码中找不到任何信息-它们是否仅存在于数据库中?页面名称和路径总是相同的,因为我们应用程序的其他部分需要知道指向哪里才能正常工作


提前感谢,

有不同的“部署页面”方法

如果您只是想镜像您的开发数据库和资产,您可以使用

如果您的模块希望确保存在一些默认页面或数据对象,您可以对数据对象使用方法
requiredfaultrecords()
。这将在每个开发/构建上运行,并检查是否应该添加一些内容。
DataObject::requireDefaultRecords()的docblock表示:

将默认记录添加到数据库。每当 在创建完所有数据库表之后,将构建数据库。 重载此选项以在构建数据库时添加默认记录,但 确保调用父::RequiredFaultRecords()

@使用DataExtension->RequiredFaultRecords()

当我不知道页面的实际内容时,我经常在本地添加数据。但是,对于设置给定的站点结构或数据结构,有一种方法,您可以在yml文件中定义数据,并运行buildtask将其添加到数据库中


此模块非常灵活,您可以擦除数据库表并重新填充它,也可以检查给定页面是否存在并进行更新等。

有不同的“部署页面”方法

如果您只是想镜像您的开发数据库和资产,您可以使用

如果您的模块希望确保存在一些默认页面或数据对象,您可以对数据对象使用方法
requiredfaultrecords()
。这将在每个开发/构建上运行,并检查是否应该添加一些内容。
DataObject::requireDefaultRecords()的docblock表示:

将默认记录添加到数据库。每当 在创建完所有数据库表之后,将构建数据库。 重载此选项以在构建数据库时添加默认记录,但 确保调用父::RequiredFaultRecords()

@使用DataExtension->RequiredFaultRecords()

当我不知道页面的实际内容时,我经常在本地添加数据。但是,对于设置给定的站点结构或数据结构,有一种方法,您可以在yml文件中定义数据,并运行buildtask将其添加到数据库中

这个模块非常灵活,您可以擦除数据库表并重新填充它,也可以检查给定页面是否存在并更新它,等等