基本上我想要做的是将生产服务器与沙箱服务器同步,但只有表结构和存储过程。这些过程没有任何问题,因为它们可以被覆盖,但问题在于表格。我想在不更改任何现有数据的情况下使用mysqldump
(或您可以提出的任何其他方式)在生产服务器上同步和更改它们的结构。
如果有帮助,我只想添加更多列,而不是删除任何现有列。另外,我正在使用mysqlyog
.
有没有办法做到这一点?
只要您不重命名表和列并且不使用分区,您就可以使用schemasync。
基本用法是:
schemasync mysql://user:pass@dev-host:3306/dev_db mysql://user:pass@prod-host:3306/prod_db
Run Code Online (Sandbox Code Playgroud)
这将生成两个 SQL 脚本 - 一个用于“修补”生产数据库,另一个用于恢复更改。
请注意,模式更改将锁定受影响的表,因此无论如何您都会有一些停机时间。有一些工具可以避免这种情况:来自 Percona 的pt-online-schema-change和来自 openarkkit 的Oak-online-alter-table。
此外,与任何可能具有破坏性的更改一样,请在临时数据库(或其他非生产用途,但生产数据和模式)数据库上测试该过程。
归档时间: |
|
查看次数: |
6680 次 |
最近记录: |