首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >插件的数据库“迁移”?

插件的数据库“迁移”?
EN

WordPress Development用户
提问于 2016-09-24 00:36:09
回答 1查看 534关注 0票数 3

我正在为WordPress创建一个插件。这个插件需要将数据保存到数据库中。在我使用过的其他编程框架中,有一些叫做“数据库迁移”的系统。这些迁移是

  • SQL ALTER TABLECREATE TABLE语句/脚本
  • 有时被抽象为框架的编程语言。
  • 按照我的指令,我的插件/扩展/etc的用户可以说“运行迁移”,并且数据库将被更新。
    • 有时还包括允许您“回滚”这些更改的功能。

一个示例迁移系统拉勒维尔的

WordPress是否有一个类似迁移的系统?如果没有,是否有一种规范的方法(通过特定的钩子、插件注册等)来打包新的数据库表和/或更改我的插件需要的现有WordPress表?

EN

回答 1

WordPress Development用户

回答已采纳

发布于 2016-09-24 01:16:41

令人惊讶的是没有。相反,您需要使用以下函数,只要插件被激活,它就会运行。

代码语言:javascript
复制
define( 'YOUR_PLUGIN_VERSION', '1.0.0' );

register_activation_hook( __FILE__, 'your_plugin_activation_function' );

function your_plugin_activation_function() {
  // Do activation tasks here.
  your_install_function();
  your_upgrade_migration_function();
}

运行安装脚本。

代码语言:javascript
复制
function your_install_function() {

  // Set the current version of the plugin in the db.
  update_option( 'your_plugin_version', YOUR_PLUGIN_VERSION );
}

然后,对每个新版本进行比较,基本上执行数据库迁移,等等。

代码语言:javascript
复制
function your_upgrade_migration_function() {

  // Using a version prior to 1.1.1
  if ( version_compare( YOUR_PLUGIN_VERSION, '1.1.1', '<' ) ) {
    // Do upgrade things unique for this version.
  }

  // Using a version prior to 1.2.0
  if ( version_compare( YOUR_PLUGIN_VERSION, '1.2.0', '<' ) ) {
    // Do upgrade things unique for this version.
  }
}
票数 4
EN
页面原文内容由WordPress Development提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://wordpress.stackexchange.com/questions/240403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档