企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持知识库和私有化部署方案 广告
模块发布后,开发者如果想在用户安装、更新、卸载应用时,安装一些数据表,变更一些数据表或是执行一些脚本,可以通过在**manifest.xml**中进行设置。 * 安装应用 ~~~ <install><![CDATA[SQL语句或是php文件名]]></install> ~~~ * 更新应用 ~~~ <upgrade><![CDATA[SQL语句或是php文件名]]></upgrade> ~~~ * 卸载应用 ~~~ <uninstall><![CDATA[SQL语句或是php文件名]]></uninstall> ~~~ 如果是简单的SQL语句,创建表、删除表、更新数据,可以直接将SQL语句写入节点中,如果还需要PHP配合运行一些程序此处可以写文件名,系统会自动加载对应的文件运行(文件要放置到模块的根目录下),例如: ~~~ <upgrade><![CDATA[upgrade.php]]></upgrade> ~~~ ![](http://cdn.w7.cc/images/2017/08/28/150391524059a3ece84e4c6_gyzHbUCuuoGh.jpg) 上面设置更新模块时执行upgrade.php文件,需要注意的是,每次模块更新时均会执行该文件,需要保证升级文件是可以多次执行不会出错。如果有一些新建表或是删除表的操作,最好先判断表是否存在。 ~~~ if (pdo_fieldexists('storex_room', 'hotelid')) { pdo_query("ALTER TABLE " . tablename('storex_room') . " CHANGE `hotelid` `store_base_id` INT(11) NULL DEFAULT '0';");}if (!pdo_fieldexists('storex_room', 'is_house')) { pdo_query("ALTER TABLE " . tablename('storex_room') . " ADD `is_house` INT(11) NOT NULL DEFAULT '1' COMMENT '是否是房型 1 是,2不是 ';");} ~~~