首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wordpress数据库迁移

Wordpress数据库迁移
EN

Stack Overflow用户
提问于 2009-09-18 22:51:08
回答 6查看 4.1K关注 0票数 5

我在Wordpress的论坛上看了看,没有找到任何东西,所以我想我可以在这里尝试一下。

如果您有一个staging/dev Wordpress设置用于测试新的插件等,那么如何将staging数据库中的数据迁移回生产数据库?有没有一种"Wordpress最佳实践“的方法来做到这一点,或者我是否仅限于手动将表从一个数据库迁移到另一个数据库?

EN

回答 6

Stack Overflow用户

发布于 2010-08-22 08:21:21

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

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

以下是我的脚本:

overwrite_test.coach_db_with_coache_db.sh

代码语言:javascript
复制
#!/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

代码语言:javascript
复制
-- 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;
票数 3
EN

Stack Overflow用户

发布于 2009-09-18 23:03:44

也许你只是在寻找错误的东西。难道备份插件不能很容易地处理这个问题吗?我知道它们存在于所有大的CMS包中。

票数 1
EN

Stack Overflow用户

发布于 2009-09-19 04:08:42

这两种方法是使用tools下的导出/导入功能或复制数据库。我使用WordPress数据库备份插件每周通过电子邮件给自己发送一份生产数据库的副本。

导入功能对于移动wordpress博客是有问题的,因为你必须经常配置你的php.ini文件,因为默认情况下,你可以上传到一个托管的php实现的文件的默认值太小了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1447148

复制
相关文章

相似问题

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