数据库表结构同步

1.同步对比工具--workbench

首先选择模板数据库生成model, 然后选择database->synchronize with any source..->选择模板数据源(source)->选择要同步的数据源(target)->选择要同步的数据库,点击override target, 一直点击向下执行, 生成变动的sql脚本.

或者是选择database->synchronize model... 二者的区别在于后者是选择的数据源和已经生成的model比较, 而前者是与生成的model无关,是重新选择两个数据源来对比

关于该脚本的问题:

a. 首先在对比前要设置mysql版本 https://blog.csdn.net/asdfsadfasdfsa/article/details/84777682

b. 生成的sql脚本中, 关于转义字符需要手动处理,

例如下面生成的脚本

CHANGE COLUMN `inventory_count` `inventory_count` DOUBLE(10,2) NOT NULL COMMENT '库存量\\n2017-12-29 float(10,2) 修改 double(10,2)\\n'

需要将所有的\\n修改为\n

c.如果是多个db间同步,需要去掉db-name

 

2.使用ssh命令执行时, 需要把mysql -u root -p123456 -D zytest < sync.sql命令使用sh脚本执行, 不然sync.sql文件无法识别

sh脚本不能使用环境变量

sh命令尾部追加

>> /mnt/sql/change.log 2>&1

 

你可能感兴趣的:(mysql)