wordpress数据库的自动同步需要更新它

时间:2012-03-14 12:28:43

标签: php mysql wordpress synchronization

我已经构建了一个执行以下操作的自动同步脚本:

  1. 清理当前位置
  2. 复制动态文件,例如上传
  3. 从目标备份数据库,进行一些替换并将其还原
  4. 真实的剧本如下:

    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&gt; PREPROD)后从wordpress加载WP-ADMIN时,我怀疑它在我做PROD时会做同样的事情&gt;阶段和PROD&gt; DEV,管理控制面板向我射击“你的数据库已经过时,我们现在就升级它们”,当我浏览我同步的网站前端时,许多perma链接在数据库中失败。

    那里有没有wordpress大师可以告诉我我可能做错了什么?是否存在要更新或清除的缓存。

    已安装的插件列表:

    1. 一些与之无关的自定义内部插件
    2. Advanted Custom Fields
    3. 重力形式
    4. Justin Tadlock的成员
    5. Joost de Valk的WordPress SEO
    6. WPML多语种CMS
    7. WPML字符串翻译
    8. 我希望有人知道......

      祝所有人好运

1 个答案:

答案 0 :(得分:1)

WordPress使用Transients APIwp_options表中缓存大量信息。清除缓存可能会解决一些问题。

DELETE FROM 'wp_options' WHERE 'option_name' LIKE '_transient_%'

正如MightyE所说,sed命令不适用于许多插件使用的任何序列化数据。我不确定所有数据库表都有一个简单的方法。