在测试站调一个批量改价的脚本,UPDATE 一跑,生产环境 2000 多条商品价格被改成 0,五分钟后才从备份恢复,损失了两笔订单。碰到这种情况,我一般先确认改动有没有真的生效。

原因不复杂,测试站的 wp-config.php 是从生产整份拷过来的,DB_HOST 和库名都没改,脚本一执行打的就是生产库。测试环境连生产数据,等于给每次调试都开了写权限。

「测试库连生产」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。报错里带路径的,先去看那个路径在不在、权限对不对。

define('WP_ENV', 'staging');
$conf = WP_ENV === 'production' ? 'prod' : 'test';
define('DB_NAME', "site_$conf");

同一份配置存在多处的,先确认改的是被加载的那一份。

具体做法是,测试站单独建库,库名带 _test 后缀,账号只授权到这一个库;wp-config 里按环境判断读不同配置,别再手工改常量;执行批量脚本前先打印当前库名,确认不是生产再跑;生产账号不要在测试机保存凭据。

最后用这个标准收尾,测试站后台的数据库信息显示 site_test,批量脚本执行后生产表行数没有变化。

作者 9823189