我需要更新架构,因为我不小心遗漏了一些外键约束。
数据库服务器是MySQL 5.1.48,被更改的表是InnoDB。
服务器使用主/从复制。
我需要知道什么才能正确地更改生产数据库模式?
ALTER TABLE语句通过二进制日志进行复制,与对表的任何其他更改一样。 事物的复制方面不需要特别的考虑。
我希望这是你所需要的,因为你没有提供足够的细节:
A) 始终 (我的意思是, 总是 )做一个备份,然后再尝试这样的改变
B)在MySQL控制台上:ALTER TABLE fsckeduptable DISABLE KEYS; SET FOREIGN_KEY_CHECKS = 0; ….做你必须做的… SET FOREIGN_KEY_CHECKS = 1; ALTER TABLE yourtablename ENABLE KEYS;
C)如果(shit_happened){恢复备份; 放弃这个; find另一种方法} D)如果一切正常,检查从属表(show create table),看看你的修改是否已经传播,然后检查使用它的prod应用程序; 如果(shit_happened)见#C)