现在的问题是大家都在测试环境下做开发.
许多组员改了数据库结构可能没记下来或者忘记了,当代码上线正式环境后就会出现各种小问题,请问这个大家是怎么解决的?
1
idblife 2015-09-07 18:24:45 +08:00
toad 可以帮到你,但是你们的发版流程是有问题的,工具只能帮助你,但解决不了实际问题。
|
3
lijinma 2015-09-07 18:38:01 +08:00
我这边有两个方案,你可以试一下,看你觉得哪个合适?
( 1 )一种是使用 Migration ,就是每次的数据库修改或增加或删除都是都脚本的。通过脚本来修改,而不是每个人使用 sql ,而这个脚本是代码的一部分,比如 PHP 的 一个框架 Laravel 的 Migration 。 ( 2 )第二种是我现在在用的,一个软件: MySQL Workbench ,这个软件会有一个 Model 的感念,这个 Model 就是类似于你的建库脚本,所有人维护这个 Model 文件,然后数据库使用“同步”功能,每次你点几个按钮,就可以看到这个 Model 与你的数据库的差异,然后执行。 Workbench 这个文件进版本管理,缺点是通过文件的变化看不出来 SQL 的修改,但是好处就是他们的“同步”功能。 你可以试试。 |
5
zava 2015-09-07 19:08:18 +08:00
有对比数据库差异, 这个应该不是个好方案.
业界上的解决方案是将数据库也进行版本化管理. 比如 ruby 的 rails 自带的 Active Record Migrations 或者是 Java 中的 Flyway / Liquibase 如果是 PHP, 可以考虑使用 Phinx (没用过...) |
8
songco 2015-09-08 16:01:24 +08:00
数据库做在虚拟机上, 打 snapshot, 定期(比如每天)revent...
|