WordPress plugin DB upgrade

时间:2014-08-26 作者:Shail

我在写插件。我在数据库中添加了1个自定义表。

假设我的插件的当前版本是1.0,几天后我正在升级插件,现在它的版本是1.2。一段时间后的版本相同,现在的版本是1.3和。。。。。1.4

现在,对于插件版本的每个版本,我都对数据库进行了一些更改。

如何升级数据库。我知道选项表中的存储db版本。

但我不知道,因为一些用户从1.1->1.2更新了他的插件,另一个是从1.1->1.4更新的。。。。。。。。。有些是1.2->1.4。。等只有这样才能将所有条件添加到代码中,或者任何其他解决方案都可用?????

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

简言之,没有。但这并不特别复杂。只需添加一个新的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升级到当前版本所需的更新。

结束

相关推荐

无法在多站点上查看网络plugins.php或upgrade-core.php

我有一个有5或6个站点的网络。在网络管理面板中,我可以看到除/wp admin/network/plugins之外的所有页面。php页面和/wp admin/network/upgrade核心。php页面。查看文件夹结构时,这两个文件都存在,但由于某些原因,它们不会加载。非常感谢您的帮助。