5.phpBB Extension Migrations
介绍
本教程解释:
迁移:数据库更改
迁移
迁移是促进数据库更改的一种手段,与在phpBB 3.0中使用UMIL的方法大体相同。 通过迁移,扩展开发人员可以根据扩展名的需要轻松地修改和添加新的模式和数据到数据库。
阅读迁移:开始使用开发人员文档进行深入的迁移文档。 我们将在这里简要介绍迁移的关键概念。
也可以看看
phpBB自定义数据库迁移验证策略。https://www.phpbb.com/extensions/rules-and-policies/validation-policy/#migrations
数据库更改
模式更改
update_schema()方法用于促进模式更改,例如添加新表,列,键和索引。
应该总是包含revert_schema()方法来撤消由update_schema()方法引入的任何更改。
我们建议将模式更改放在自己的迁移中。
了解更多:架构更改。https://area51.phpbb.com/docs/dev/3.2.x/migrations/schema_changes.html
数据变化
update_data()方法用于插入,更新和删除字段数据。
revert_data()方法是可选的,可用于撤消数据更改。 通常,在清除步骤中会自动还原update_data()方法,以反转迁移工具引入的任何更改。 只需要使用revert_data()方法在扩展程序卸载期间执行其他更改,例如执行自定义功能。
我们建议将数据更改放在自己的迁移中。
了解更多:数据更改。https://area51.phpbb.com/docs/dev/3.2.x/migrations/data_changes.html
迁移工具
配置工具
配置工具可以帮助添加,更新和删除配置项。
配置文本工具
config_text工具有助于添加,更新和删除config_text项目。 config_text表用于在TEXT列中存储任意长度值的选项。 与配置值相反,config_text不被缓存或预取。
模块工具
模块工具有助于添加和删除ACP,MCP和UCP模块。
权限工具
权限工具有助于添加,删除,设置和取消设置权限,并添加或删除权限角色。
迁移依赖关系
依赖于取决于()
depends_on()方法用于定义迁移的依赖关系。 依赖关系告诉迁移者必须安装什么顺序迁移。
了解更多:依赖关系。https://area51.phpbb.com/docs/dev/3.2.x/migrations/dependencies.html
effectively_installed()
effective_installed()方法主要用于帮助从以前的数据库安装程序(例如使用UMIL的MOD)转换到迁移。 但是,我们建议一直使用它来确保更安全的迁移。
effective_installed返回true时,迁移被视为已经安装,这意味着将跳过迁移。 这有助于防止对先前迁移或MOD安装可能已经建立的数据库进行重写(或覆盖)现有更改。
例如,在下面的代码中,如果数据库中已经存在指定的配置值,则不会应用迁移:
熟悉Migrations如何工作后,请继续阅读下一节,了解如何创建和安装ACP模块,以便我们配置Acme Demo扩展的一些设置。