MySQL迁移工具在生产环境下的使用


在产品迭代开发发布过程中,由于业务需求的增加,数据库难免会有结构调整等操作.
在每个版本发布过程中怎么控制每个版本server端程序与数据库版本保持一致,以及数据库升级、回滚等操作.
本博文宅鸟将向大家推荐一款mysql数据库迁移工具mysql-php-migrations
由于具体需求不同,宅鸟根据自己公司的情况将mysql-php-migrations做了一些修改来满应用!

宅鸟修改程序后的mysql迁移程序有以下目录:

config 配置文件
dbscript sql脚本目录
lib 迁移程序类库
migrate.php 迁移命令执行入口


执行php migrate.php
可以看到如下结果

我们可以看到migrate.php有很多命令
php migrate.php add  test
结果:
      __ __        __      __
|\/|  (_ /  \|  __ |__)|__||__) __ |\/|. _  _ _ |_. _  _  _
|  |\/__)\_\/|__    |  |  ||      |  ||(_)| (_||_|(_)| )_)
  /                                    _/
******************************************************************** v2.0.1 ***


New migration created: file
/var/www/mysqlMigrations/dbscript/2013_12_18_14_50_45_test.php


*******************************************************************************
cd dbscript
total 16
-rw-r--r-- 1 www-data www-data 4837 Sep 29 09:21 2013_06_18_17_14_16_v1.php
-rw-r--r-- 1 www-data www-data  802 Sep 29 13:29 2013_09_29_12_00_12_v1.php
-rw-r--r-- 1 root    www-data  240 Dec 18 14:50 2013_12_18_14_50_45_test.php
此时dbscript目录已经新添加一个2013_12_18_14_50_45_test.php文件,改文件格式如下:
<?php
class Migration_2013_12_18_14_50_45 extends MpmMysqliMigration
{
      public function up(ExceptionalMysqli &$mysqli)
      {
              $mysqli->exec("DO 0");
      }
      public function down(ExceptionalMysqli &$mysqli)
      {
              $mysqli->exec("DO 0");
      }


}
?>

把需要修改的数据库脚本写在up函数中:
把对应修改修改所做的回滚操作卸载down函数中

注意:在生产环境下建议只做数据库的向上变迁,不做down操作,避免用户有用数据丢失.

  • 1
  • 2
  • 下一页

相关内容