database - Wordpress 数据库迁移

标签 database wordpress migration staging

我查看了有关此的 Wordpress 论坛,但没有找到任何内容,所以我想我可以在这里试试。

如果您有用于测试新插件等的暂存/开发 Wordpress 设置,您如何将暂存数据库中的数据迁移回生产数据库?是否有“Wordpress 最佳实践”方法来执行此操作,或者我是否仅限于必须手动将表从一个数据库迁移到另一个数据库?

最佳答案

我有一个脚本,mysqldumps 我的生产 Wordpress 数据库的副本,通过我的测试 Wordpress 安装恢复它,然后更正测试数据库中的所有“生产”设置和 url。

我的生产和测试数据库都位于同一台服务器上,但您可以更改 mysqldump 设置以从远程 mysql 服务器转储并轻松恢复到本地服务器。

这是我的脚本:

overwrite_test.coach_db_with_coache_db.sh

#!/bin/bash 
dbUser="co*******"
dbPassword="*****"
dbSource="coach_production"
dbDest="coach_test"
tmpDumpFile="/tmp/$dbSource.sql"

mysqldump --add-drop-table --extended-insert --user=$dbUser --password=$dbPassword --routines --result-file=$tmpDumpFile $dbSource
mysql --user=$dbUser --password=$dbPassword $dbDest < $tmpDumpFile
mysql --user=$dbUser --password=$dbPassword $dbDest < /AdminScripts/change_coach_to_test.coach.sql

change_coach_to_test.coach.sql

-- Change all db references from @oldDomain to @newDomain

SET @oldDomain = 'coach.co.za';
SET @newDomain = 'test.coach.co.za';
SET @testUsersPassword = 'password';

UPDATE `wp_1_options` SET `option_value` = REPLACE(`option_value`,@oldDomain,@newDomain) WHERE `option_name` IN ('siteurl','home','fileupload_url');
UPDATE `wp_1_posts` SET `post_content` = REPLACE(`post_content`,@oldDomain,@newDomain);
UPDATE `wp_1_posts` SET `guid` = REPLACE(`guid`,@oldDomain,@newDomain);
UPDATE `wp_blogs` SET `domain` = @newDomain WHERE `domain` = @oldDomain;
UPDATE `wp_users` SET `user_pass` = MD5( @testUsersPassword );

-- Only valid for main wpmu site
UPDATE `wp_site` SET `domain` = @newDomain WHERE `domain` = @oldDomain;

关于database - Wordpress 数据库迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1447148/

相关文章:

html - 如何将固定导航扩展到容器 div 之外,但文本与容器对齐

javascript - Vivus.js 脚本不会在 WordPress 中执行

node.js - Redis 到永久存储的迁移

django - 操作错误 : no such table

php - WordPress 不执行 mysql_query()

ruby-on-rails - rails 4 : Re-Migrating all Migrations to Schema

php - 无法从数据库中的另一个表获取值

MySQL : weekly and monthly average

php - Mysql查询不向数据库中插入数据

c# - 在表单之间传递 MySql DB 数据