当前位置 : 主页 > 网络编程 > PHP >

#yyds干货盘点#laravel数据库迁移

来源:互联网 收集:自由互联 发布时间:2023-09-03
创建迁移 在laravel中使用make:migration命令来创建迁移 php artisan make:migration create_user_table 执行上面的命令后这时候会在database/migrations 目录下生成对应的迁移文件,每个迁移的文件名都包含

创建迁移

在laravel中使用make:migration命令来创建迁移

php artisan make:migration create_user_table

执行上面的命令后这时候会在database/migrations 目录下生成对应的迁移文件,每个迁移的文件名都包含一个时间戳来让 Laravel 确认迁移的顺序。


迁移结构

一个迁移类包含两个方法: up 和 down。up 方法是用于新增数据库的数据表、字段或者索引的,而 down 方法应该与 up 方法的执行操作相反。

up方法

public function up()
{
    Schema::create('user', function (Blueprint $table) {
        $table->bigIncrements('id');
        $table->string('name');
        $table->string('email')->unique();
        $table->timestamp('email_verified_at')->nullable();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}

down方法

public function down()
{
    Schema::dropIfExists('user');
}

运行迁移

php artisan migrate

大多数迁移操作都是破坏性的,这意味着也许会丢失数据。为了防止有人在生产环境数据中运行这些命令,在执行这些命令之前将提示你进行确认。如果要强制迁移命令在没有提示的情况下运行,请使用 --force 参数。

php artisan migrate --force

迁移回滚

php artisan migrate:rollback

通过向 rollback 命令加上 step 参数,可以回滚指定数量的迁移

php artisan migrate:rollback --step=5

migrate:reset 命令将会滚回你应用程序所有的迁移:

php artisan migrate:reset

回滚后迁移

migrate:refresh 命令将会在回滚你所有的迁移后执行 migrate 命令。这个命令可以高效的重新创建你的整个数据库:

php artisan migrate:refresh

// 刷新数据库并执行数据库填充
php artisan migrate:refresh --seed

修改字段

change 方法可以将现有的字段类型修改为新的类型或修改属性,例:

Schema::table('users', function (Blueprint $table) {
    $table->string('name', 50)->change();
});

renameColumn方法来重命名字段,依赖于doctrine/dbal拓展,例:

Schema::table('users', function (Blueprint $table) {
    $table->renameColumn('from', 'to');
});

删除字段

dropColumn 方法来删除字段,例:

Schema::table('users', function (Blueprint $table) {
    $table->dropColumn(['votes', 'avatar', 'location']);//删除votes,avatar,location字段
});
网友评论