如何在wordpress中进行数据库迁移?

Posted

技术标签:

【中文标题】如何在wordpress中进行数据库迁移?【英文标题】:How to do database migration in wordpress? 【发布时间】:2015-08-17 13:58:25 【问题描述】:

我是 wordpress 的新手。我创建了一个自定义的可安装插件。现在我想当这个插件安装时,一些表应该被迁移到这个插件所需的数据库中。

任何帮助都会有所帮助。谢谢。

【问题讨论】:

【参考方案1】:

您可以注册激活hook。当您的插件被激活并执行您希望它执行的操作时,这将触发。结合dbDelta,您可以执行表格的创建(或者如果新版本需要不同的表格布局,则进行更改)。

提供了一个工作示例:

<?php

    global $jal_db_version;
    $jal_db_version = '1.0';

    function jal_install() 
        global $wpdb;
        global $jal_db_version;

        $table_name = $wpdb->prefix . 'liveshoutbox';

        $charset_collate = $wpdb->get_charset_collate();

        $sql = "CREATE TABLE $table_name (
            id mediumint(9) NOT NULL AUTO_INCREMENT,
            time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
            name tinytext NOT NULL,
            text text NOT NULL,
            url varchar(55) DEFAULT '' NOT NULL,
            UNIQUE KEY id (id)
        ) $charset_collate;";

        require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
        dbDelta( $sql );

        add_option( 'jal_db_version', $jal_db_version );
    

    function jal_install_data() 
        global $wpdb;

        $welcome_name = 'Mr. WordPress';
        $welcome_text = 'Congratulations, you just completed the installation!';

        $table_name = $wpdb->prefix . 'liveshoutbox';

        $wpdb->insert( 
            $table_name, 
            array( 
                'time' => current_time( 'mysql' ), 
                'name' => $welcome_name, 
                'text' => $welcome_text, 
            ) 
        );
    

    register_activation_hook( __FILE__, 'jal_install' );
    register_activation_hook( __FILE__, 'jal_install_data' );

?>

【讨论】:

我必须在哪个文件中添加此代码。在 my_plugin_name.php 文件或其他文件中。 它很棒。非常感谢 @Niels 我知道这是旧的,但通过谷歌寻求帮助似乎只能找到实际的插件。如果我将 $jal_db_version 增加到 1.1,那会指示数据库在升级时更新还是我有点希望?

以上是关于如何在wordpress中进行数据库迁移?的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch数据迁移与集群容灾

数据迁移 - 如何快速迁移

Oracle数据库部分迁至闪存存储方案

Redis技术探索「数据迁移实战」手把手教你如何实现在线+离线模式进行迁移Redis数据实战指南(在线同步数据)

如何将 wordpress 博客迁移到 AWS 弹性 beantalk

如何将 WordPress 从现场迁移到本地?