在產(chǎn)品迭代開發(fā)發(fā)布過程中,由于業(yè)務(wù)需求的增加,數(shù)據(jù)庫難免會(huì)有結(jié)構(gòu)調(diào)整等操作.在每個(gè)版本發(fā)布過程中怎么控制每個(gè)版本server端程
在產(chǎn)品迭代開發(fā)發(fā)布過程中,由于業(yè)務(wù)需求的增加,,數(shù)據(jù)庫難免會(huì)有結(jié)構(gòu)調(diào)整等操作.
在每個(gè)版本發(fā)布過程中怎么控制每個(gè)版本server端程序與數(shù)據(jù)庫版本保持一致,以及數(shù)據(jù)庫升級(jí)、回滾等操作.
本博文宅鳥將向大家推薦一款mysql數(shù)據(jù)庫遷移工具mysql-php-migrations
由于具體需求不同,宅鳥根據(jù)自己公司的情況將mysql-php-migrations做了一些修改來滿應(yīng)用!
宅鳥修改程序后的mysql遷移程序有以下目錄:
config 配置文件
dbscript sql腳本目錄
lib 遷移程序類庫
migrate.php 遷移命令執(zhí)行入口
執(zhí)行php migrate.php
可以看到如下結(jié)果
我們可以看到migrate.php有很多命令
php migrate.php add test
結(jié)果:
__ __ __ __
|\/| (_ / \| __ |__)|__||__) __ |\/|. _ _ _ |_. _ _ _
| |\/__)\_\/|__ | | || | ||(_)| (_||_|(_)| )_)
/ _/
******************************************************************** 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
此時(shí)dbscript目錄已經(jīng)新添加一個(gè)2013_12_18_14_50_45_test.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");
}
}
?>
把需要修改的數(shù)據(jù)庫腳本寫在up函數(shù)中:
把對應(yīng)修改修改所做的回滾操作卸載down函數(shù)中
注意:在生產(chǎn)環(huán)境下建議只做數(shù)據(jù)庫的向上變遷,不做down操作,避免用戶有用數(shù)據(jù)丟失.
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com