在快速迭代开发的过程中,有的时候可能会需要比较本地开发机器上的 MySQL 数据库和远程服务器上的有什么结构上的不同。
大家有什么好的工具或是方法推荐么?
大家有什么好的工具或是方法推荐么?
1
bruce Mar 30, 2011 via Android
导出 diff
|
2
flytwokites Mar 30, 2011
我用的脚本片断:
dump_schema() { mysqldump -uroot --skip-opt --no-data --skip-add-drop-table --skip-comments $2 | grep -v -e '^/\*!' >$1 } dump_schema "$new_db.schema.sql" $new_db dump_schema "$old_db.schema.sql" $old_db meld "$new_db.schema.sql" "$old_db.schema.sql" |
3
TheOnly92 Mar 30, 2011
@flytwokites 何时开始 export old schema?这个方法挺不错,想学学看。
|
4
muxi Mar 30, 2011
Navicat
|
5
muxi Mar 30, 2011
@flytwokites 求完整脚本
|
6
flytwokites Mar 30, 2011
FILE: dbup
========== #!/bin/bash new_db=${1:?miss db name} old_db=${new_db}_old old_db_dumpfile=${new_db}_old.$2.sql # load old db if [ -f "$old_db_dumpfile" ]; then mysql -uroot <<SQL drop database if exists $old_db; create database $old_db charset utf8; SQL echo "loading old db..." mysql -uroot $old_db <$old_db_dumpfile || exit 1 echo "upgrading..." ./upgrade || exit 1 fi # compare dump_schema() { mysqldump -uroot --skip-opt --no-data --skip-add-drop-table --skip-comments $2 | grep -v -e '^/\*!' >$1 } dump_schema "$new_db.schema.sql" $new_db dump_schema "$old_db.schema.sql" $old_db sleep 1s meld "$new_db.schema.sql" "$old_db.schema.sql" & ============ 用法: 先把原先的数据库导出为dbname_old..sql,可以含数据,然后写一个upgrade脚本(改数据库结构/迁移数据),然后就 $ ./dbup dbname 如果发现upgrade写得不对,改了后再次运行直到没问题,然后把upgrade传上服务器上运行。 |
7
aligo Mar 30, 2011
用常用的mysql gui工具就可以干这个啊,例如mysql workbench啊navicat啊(一般用它)
如果要比较简单的: http://dbsynch.g6.cz/ (在线) https://github.com/dsyph3r/php-mysql-diff/ (php) https://bitbucket.org/stepancheg/mysql-diff/ (scala) 楼上那个用meld也不错 |
8
Livid MOD OP PRO @aligo 刚刚下载了最新版本的 MySQL Workbench 试了试。果然很强大。
最早 MySQL 的各种 GUI 在 03/04 年出来的时候,还十分简陋,当时试过之后就没有再用了。不过现在看来 Workbench 确实相当靠谱。 有介绍 Workbench 比较好的书么?大家推荐几本吧。感谢。 |
9
iugo Mar 30, 2011
不是放弃PHP了吗?
|
12
cluries Mar 30, 2011
SQLYog~~
很好用的说.. |
13
huacnlee Mar 30, 2011
以前Windows里面的时候我用过 SQL Delta 非常给力.不过是 SQL Server 的,结构数据,完美处理.不知现在有没有 MySQL 的.
不过 Ruby on Rails 搞的不怕这个问题, Migration 完美解决! |
14
bed Mar 30, 2011
@Livid 官方文档就足够了http://dev.mysql.com/doc/index-gui.html
mysql在macosx下的管理工具除了Navicat和workbench之外还有一个sequelpro http://www.sequelpro.com/ 此外最靠谱的mysqlschema管理还是需要有类似Rails的migration的机制 php中也有 https://github.com/davejkiger/mysql-php-migrations 以前是在 http://code.google.com/p/mysql-php-migrations/ 此外 http://www.yiiframework.com/ 现在也集成了migration操作,也可以单独拿出来用。 以前我们用mysql-php-migration 现在用yii的migration |
16
JiaFeiX Oct 27, 2016 via iPhone
到了 2016 年,大家有什么新的推荐和最佳实践吗?
|