快速入门软擎Rangine框架引入的Laravel数据库迁移功能
Laravel 数据库迁移 为何物?
- 数据库迁移就像是数据库的版本控制,可以让你的团队轻松修改并共享应用程序的数据库结构。迁移通常与 Rangine 的数据库结构生成器配合使用,让你轻松地构建数据库结构。如果你曾经试过让同事手动在数据库结构中添加字段,那么数据库迁移可以让你不再需要做这样的事情。
- 数据库迁移需要在最新的框架模板上执行。
- 可参考laravel数据库迁移文档
为什么要用数据库迁移?
曾经也在一个开发小组内,为完成一个项目,与其他同事协作开发。曾经设计数据库时,几个开发人员,围在一台电脑前,一边讨论项目需求 , 围在电脑前,一边讨论需求,一边在把数据表和表的结构记录好,然后交个其中一位同事,把结构通过phpmyadmin的创建表功能, 转换成功mysql的数据库,形成项目数据库第一个版本。 拿着第一个版本,大家分工去开发自己的模块。再不断的开发过程中,这个要增加几个字段,增加几个表,哪个要修改字段名。 就这样,当大家把模块合并起来调用后,发现 自己本地的数据库版本,已经和最新的相差甚远。于是每次,都自己去问同事,哎, 小码,把增加的数据字段发一份过来。对不起,没有留下sql语句,直接在phpmyadmin里面操作的……
说到这里,当时要是有一个知道数据库迁移工具,多好。直接复制一份迁移的文件到本地环境里面,命令一打,数据库自己就维护好了。
如何使用软擎的数据库迁移命令?
生成迁移文件
新的迁移文件会被放置在 databa<x>se/migrations 目录中。每个迁移文件的名称都包含了一个时间戳,以便让 Rangine 确认迁移的顺序。
—table 和 —create 选项可用来指定数据表的名称,或是该迁移被执行时是否将创建的新数据表。这些选项需在预生成迁移文件时填入指定的数据表:
bin/gerent migrate:make create_users_table --create=users
bin/gerent migrate:make add_votes_to_users_table --table=users
执行命令
//命令参数和laravel一致
bin/gerent migrate:make create_user
use IlluminateDataba<x>seSchemaBlueprint;
use W7CoreDataba<x>seMigrateMigration;
class CreateUser extends Migration {
/**
* Run the migrations.
*
* @return void
*/
public function up() {
$this->schema->create("user", function (Blueprint $table) {
$table->bigIncrements("id");
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down() {
$this->schema->dropIfExists("user");
}
}
迁移类通常会包含两个方法:up 和 down。up 方法可为数据库添加新的数据表、字段或索引,而 down 方法则是 up 方法的逆操作。
执行数据库迁移
执行命令
bin/gerent migrate:migrate
会自动发现databa<x>se/migrations下没执行过的迁移文件,执行数据库更新。
执行成功后,会创建${prefix}_migration表以及迁移文件中涉及到的表
回滚数据库迁移
若要回滚最后一次迁移,可以使用 rollback 命令。此命令将回滚最后一次「迁移」,其中可能包含多个迁移文件
执行命令
bin/gerent migrate:rollback
在 rollback 命令后加上 step 参数,你可以限制回滚迁移的个数。例如,以下命令将回滚最近五次迁移:
bin/gerent migrate:rollback --step=5
migrate:reset 命令可以回滚应用程序中的所有迁移:
bin/gerent migrate:reset
使用单个命令来执行回滚或迁移
migrate:refresh 命令不仅会回滚数据库的所有迁移还会接着运行 migrate 命令。这个命令可以高效地重建整个数据库:
bin/gerent migrate:refresh
使用 refresh 命令并提供 step 参数来回滚并再执行最后指定的迁移数。例如,以下命令将回滚并重新执行最后五次迁移:
bin/gerent migrate:refresh --step=5
以上是 快速入门软擎Rangine框架引入的Laravel数据库迁移功能 的全部内容, 来源链接: utcz.com/z/512007.html