我已经构建了一个执行以下操作的自动同步脚本:
-
清理当前位置
-
复制动态文件,例如上传
-
从目标备份数据库,做一些替换并恢复它
真正的脚本如下:
echo Updating via SVN
export LC_ALL=fr_CA.UTF-8
svn up
echo Cleaning up the image and temp folder
rm -Rf wp-content/uploads/*
echo Copying files from production version
cp -R ../public_html/wp-content/uploads/* wp-content/uploads/
echo Importing wordpress database
mysqldump -u xxxyyyzzz --password=xxxyyyzzz xxxyyyzzz_db --skip-opt --add-drop-table --default-character-set=utf8 > temp.sql
sed 's/www.domain.com/preprod.domain.com/g' temp.sql > temp2.sql
mysql -u xxxyyyzzz --password=xxxyyyzzz xxxyyyzzz_preprod_db < temp2.sql
rm temp.sql
rm temp2.sql
echo Complete
除了一个小问题,这里的代码工作正常 . 当我在同步两个项目(PROD> PREPROD)之后从wordpress加载WP-ADMIN时,我怀疑它会在PROD> STAGE和PROD> DEV时执行相同的操作,管理控制面板会向我发送“你是”数据库已过期,我们现在将升级它“当我浏览我同步的网站前端时,许多perma链接在数据库中失败 .
那里有没有wordpress guru可以告诉我我可能做错了什么?是否存在要更新或清除的缓存 .
安装的插件列表:
-
一些与之无关的自定义内部插件
-
推荐自定义字段
-
重力形式
-
Justin Tadlock成员
由Joost de Valk撰写的 -
WordPress SEO
-
WPML多语种CMS
-
WPML字符串翻译
我希望有人知道......
祝你们好运
1 回答
WordPress使用Transients API在
wp_options
表中缓存大量信息 . 清除缓存可能会解决一些问题 .正如MightyE所说,
sed
命令赢得了't work on any serialized data, which many plugins use. I' m并不确定所有数据库表的简单方法 .