快速入门软擎Rangine框架引入的Laravel数据库迁移功能

编程

 Laravel 数据库迁移 为何物?

  1. 数据库迁移就像是数据库的版本控制,可以让你的团队轻松修改并共享应用程序的数据库结构。迁移通常与 Rangine 的数据库结构生成器配合使用,让你轻松地构建数据库结构。如果你曾经试过让同事手动在数据库结构中添加字段,那么数据库迁移可以让你不再需要做这样的事情。
  2. 数据库迁移需要在最新的框架模板上执行。
  3. 可参考laravel数据库迁移文档

为什么要用数据库迁移? 

曾经也在一个开发小组内,为完成一个项目,与其他同事协作开发。曾经设计数据库时,几个开发人员,围在一台电脑前,一边讨论项目需求 , 围在电脑前,一边讨论需求,一边在把数据表和表的结构记录好,然后交个其中一位同事,把结构通过phpmyadmin的创建表功能,      转换成功mysql的数据库,形成项目数据库第一个版本。          拿着第一个版本,大家分工去开发自己的模块。再不断的开发过程中,这个要增加几个字段,增加几个表,哪个要修改字段名。           就这样,当大家把模块合并起来调用后,发现 自己本地的数据库版本,已经和最新的相差甚远。于是每次,都自己去问同事,哎,      小码,把增加的数据字段发一份过来。对不起,没有留下sql语句,直接在phpmyadmin里面操作的……

说到这里,当时要是有一个知道数据库迁移工具,多好。直接复制一份迁移的文件到本地环境里面,命令一打,数据库自己就维护好了。

如何使用软擎的数据库迁移命令?

生成迁移文件

新的迁移文件会被放置在 databa<x>se/migrations 目录中。每个迁移文件的名称都包含了一个时间戳,以便让 Rangine 确认迁移的顺序。

—table 和 —create 选项可用来指定数据表的名称,或是该迁移被执行时是否将创建的新数据表。这些选项需在预生成迁移文件时填入指定的数据表:

  1. bin/gerent migrate:make create_users_table --create=users
  2.  
  3. bin/gerent migrate:make add_votes_to_users_table --table=users

执行命令

  1. //命令参数和laravel一致
  2. bin/gerent migrate:make create_user

  1. use IlluminateDataba<x>seSchemaBlueprint;
  2. use W7CoreDataba<x>seMigrateMigration;
  3.  
  4. class CreateUser extends Migration {
  5. /**
  6. * Run the migrations.
  7. *
  8. * @return void
  9. */
  10. public function up() {
  11. $this->schema->create("user", function (Blueprint $table) {
  12. $table->bigIncrements("id");
  13. $table->timestamps();
  14. });
  15. }
  16.  
  17. /**
  18. * Reverse the migrations.
  19. *
  20. * @return void
  21. */
  22. public function down() {
  23. $this->schema->dropIfExists("user");
  24. }
  25. }

迁移类通常会包含两个方法:up 和 down。up 方法可为数据库添加新的数据表、字段或索引,而 down 方法则是 up 方法的逆操作。

执行数据库迁移

执行命令

  1. bin/gerent migrate:migrate

会自动发现databa<x>se/migrations下没执行过的迁移文件,执行数据库更新。
执行成功后,会创建${prefix}_migration表以及迁移文件中涉及到的表

回滚数据库迁移

若要回滚最后一次迁移,可以使用 rollback 命令。此命令将回滚最后一次「迁移」,其中可能包含多个迁移文件

执行命令

bin/gerent migrate:rollback

在 rollback 命令后加上 step 参数,你可以限制回滚迁移的个数。例如,以下命令将回滚最近五次迁移:

  1. bin/gerent migrate:rollback --step=5

migrate:reset 命令可以回滚应用程序中的所有迁移:

  1. bin/gerent migrate:reset

使用单个命令来执行回滚或迁移

migrate:refresh 命令不仅会回滚数据库的所有迁移还会接着运行 migrate 命令。这个命令可以高效地重建整个数据库:

  1. bin/gerent migrate:refresh

使用 refresh 命令并提供 step 参数来回滚并再执行最后指定的迁移数。例如,以下命令将回滚并重新执行最后五次迁移:

  1. bin/gerent migrate:refresh --step=5

以上是 快速入门软擎Rangine框架引入的Laravel数据库迁移功能 的全部内容, 来源链接: utcz.com/z/512007.html

回到顶部