📜  Laravel迁移(1)

📅  最后修改于: 2023-12-03 15:17:17.478000             🧑  作者: Mango

Laravel 迁移

Laravel 迁移(Migration)是用于操作数据库表结构的工具。可以创建、修改、删除、重命名表以及表中的字段等。本文将介绍如何使用 Laravel 迁移。

安装 Laravel

先确保已经安装好了 ComposerPHP

使用以下命令创建 Laravel 项目:

composer create-project --prefer-dist laravel/laravel project-name
创建迁移

使用以下命令创建迁移:

php artisan make:migration create_users_table

上述命令将在 database/migrations 目录下创建一个新的迁移文件,用于创建 users 表。文件名类似于 2022_07_01_123456_create_users_table.php

迁移文件通常包含两个方法:updownup 方法用于创建表和添加字段等,down 方法则是撤销 up 方法所做的更改。

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

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

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

在上面的例子中,我们使用了 Schema 类来创建 users 表并添加了一些字段。 Schema::create 方法接收表名和一个回调函数,该回调函数用于定义表结构。

运行迁移

使用以下命令来运行迁移:

php artisan migrate

上述命令将运行所有尚未运行的迁移文件。

如果需要回滚迁移,则可以使用以下命令:

php artisan migrate:rollback

这将撤销最后一次迁移。如果想要回滚到之前的一次迁移,则可以使用以下命令:

php artisan migrate:rollback --step=2

上述命令将回滚最近的两个迁移。

修改迁移

如果需要修改迁移文件,可以使用以下命令来创建一个新的迁移文件:

php artisan make:migration add_phone_number_to_users_table

上述命令将在 database/migrations 目录下创建一个新的迁移文件用于修改 users 表。

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class AddPhoneNumberToUsersTable extends Migration
{
    public function up()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->string('phone_number')->after('email');
        });
    }

    public function down()
    {
        Schema::table('users', function (Blueprint $table) {
            $table->dropColumn('phone_number');
        });
    }
}

在上面的例子中,我们创建了一个新的迁移文件,用于给 users 表添加 phone_number 字段。 up 方法中我们使用了 Schema::table 方法进行修改,down 方法则进行相反的操作。

运行以下命令来执行新的迁移文件:

php artisan migrate

现在 users 表中应该已经添加了 phone_number 字段。

结论

本文介绍了如何使用 Laravel 迁移来操作数据库表结构。如果您想深入了解更多信息,请查阅 官方文档