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

问题描述 投票:0回答:1

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

缺少的是,当我创建新页面时,我必须在部署后手动转到环境并登录到/ admin页面 - >添加新 - >选择页面类型 - >填写表单并单击发布。

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

提前致谢,

silverstripe silverstripe-4
1个回答
2
投票

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

如果您只想镜像您的dev db和assets,可以使用sspak

如果您的模块想要确定,存在一些默认页面或数据对象,则可以在DataObjects上使用requireDefaultRecords()方法。这在每个dev / build上运行,并检查它是否应该添加一些内容。 DataObject::requireDefaultRecords()的文件说:

将默认记录添加到数据库。在创建数据库表之后,每当构建数据库时都会调用此函数。在构建数据库时重载此选项以添加默认记录,但请确保调用parent :: requireDefaultRecords()。

@uses DataExtension-> requireDefaultRecords()

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

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

© www.soinside.com 2019 - 2024. All rights reserved.