我在写插件。我在数据库中添加了1个自定义表。
假设我的插件的当前版本是1.0,几天后我正在升级插件,现在它的版本是1.2。一段时间后的版本相同,现在的版本是1.3和。。。。。1.4
现在,对于插件版本的每个版本,我都对数据库进行了一些更改。
如何升级数据库。我知道选项表中的存储db版本。
但我不知道,因为一些用户从1.1->1.2更新了他的插件,另一个是从1.1->1.4更新的。。。。。。。。。有些是1.2->1.4。。等只有这样才能将所有条件添加到代码中,或者任何其他解决方案都可用?????
我在写插件。我在数据库中添加了1个自定义表。
假设我的插件的当前版本是1.0,几天后我正在升级插件,现在它的版本是1.2。一段时间后的版本相同,现在的版本是1.3和。。。。。1.4
现在,对于插件版本的每个版本,我都对数据库进行了一些更改。
如何升级数据库。我知道选项表中的存储db版本。
但我不知道,因为一些用户从1.1->1.2更新了他的插件,另一个是从1.1->1.4更新的。。。。。。。。。有些是1.2->1.4。。等只有这样才能将所有条件添加到代码中,或者任何其他解决方案都可用?????
简言之,没有。但这并不特别复杂。只需添加一个新的version_compare
每次修改数据库时阻止:
$db_version = get_option( \'my_plugin_version\' );
if ( version_compare( $db_version, \'1.1\', \'<\' ) ) {
// Initial update code added in 1.1
}
if ( version_compare( $db_version, \'1.2\', \'<\' ) ) {
// Additional update code added in 1.2
}
if ( version_compare( $db_version, \'1.3\', \'<\' ) ) {
// And so forth
}
update_option( \'my_plugin_version\', \'1.3\' );
这说明了从任何以前版本进行的升级,并且只应用将db升级到当前版本所需的更新。我有一个有5或6个站点的网络。在网络管理面板中,我可以看到除/wp admin/network/plugins之外的所有页面。php页面和/wp admin/network/upgrade核心。php页面。查看文件夹结构时,这两个文件都存在,但由于某些原因,它们不会加载。非常感谢您的帮助。