为保证研发过程中的数据库结构统一。保证在多人协作的开发环境下,本机库,测试服务器数据库。正式服务期数据库的结构,必要数据的一致性,项目采用Laravel 的Migrate 机制来存留数据库变更的记录。
数据库迁移 &数据填充的基本介绍见:
http://v4.golaravel.com/docs/4.2/migrations
项目管理维护的前提情况说明
1,上线申请,必须要注明出现问题后可实施的回退方案和操作细节。
2,上线操作的实施者和维护者并不了解研发的数据库结构。
3,熟悉数据库结构的研发人员可能并不具备线上数据库的操作权限。
4,项目研发过程中对数据库结构的变更有阶段性,持续性的特点。
项目上线具体操作步骤范例
更新步骤:
1. 在网站根目录(/var/www/)下执行
php artisan down
2. 在网站根目录(/var/www/)下执行
git pull
3.在网站根目录(/var/www/)下执行
phpartisan migrate --path=app/database/migrations/v1.1
4.网站根目录(/var/www/baiqian_stsr)下执行
php artisan up
回滚方案:
1. 网站源码回滚,在网站根目录(/var/www/)下执行
git reset --hard4ec7b4c5347fc1948147bd315a8d9bd5a1ef0032
2,数据库变更回滚
php artisan migrate:rollback
(app/database/migrations/v1.1目录下如果执行了N个文件,则执行N次roolback)
以上说明是为了理解,为什么要按下面这么做……
研发人员注意事项:
1,对数据库的变更,应当建立相应的迁移文件
2,创建数据库迁移文件应指定路径(以版本号区别,便于回退至上一版本),
3,应建立相应的回退脚本(保证回退后再次执行迁移不会出错)。
使用命令创建初始迁移文件例子:
php artisanmigrate:make test --path=app/database/migrations/v1.1
<?php
use Illuminate\Database\Migrations\Migration;
class Test extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up() {
DB::statement("alter table merchant_loan_product add prepay_rate2 decimal(6,4)
DEFAULT '0' COMMENT '提前结清违约金费率2' AFTER service_fate;");
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down() {
DB::statement("alter table merchant_loan_product DROP prepay_rate2;");
}
}