Laravel 迁移结构

2025年3月17日 | 阅读 3 分钟

我们都知道,迁移是 Laravel 中一个重要的特性,它有助于我们以有序的方式在数据库中创建表。有序方式意味着如果我们有一个类运行 php artisan 命令,它将使用所有字段和列创建表。

让我们了解一下迁移结构。

步骤 1: 移动到 C:\xampp\htdocs\laravelproject\database\migrations 目录。

Laravel Migration Structure

上面的截图显示我们已经打开了 migrations 文件夹,其中包含两个 php 文件。这些文件是类。文件的名称是 2014_10_12_000000_create_users_table,其中 2014_10_12_000000 代表时间,而 create_users_table 并不代表表的名称,而是迁移的名称。

步骤 2: 双击该类,它将带我到扩展 Migration 的特定类。

在上面的代码中,我们观察到迁移类包含两种方法,即 up() 方法和 down() 方法。up() 方法用于创建新表,将新列或索引添加到数据库,而 down() 方法与 up() 方法相反,即它删除字段。上面的类基本上是在数据库中创建表。up() 方法运行静态方法,即 create(),使用 Schema 类。

up() 方法的上述语法中,Schema 是类,'create' 是 Schema 类的静态函数。create() 方法包含两个参数,即表的名称和闭包函数。'users' 是表的名称,闭包函数中传递 Blueprint 类及其对象作为参数。 $table 用于在 users 表中创建列。

$table->bigIncrements('id'): 这意味着 $table 正在实现 increments() 方法,该方法在 users 表中创建了 id 列,并且这个 'id' 是自增的。

$table->string('name'): 这意味着 $table 实现了 string() 方法,该方法在 users 表中创建了 name 列。

$table->string('email')->unique(): 这意味着 $table 实现了 string() 方法,该方法在 users 表中创建了 email 列。它还实现了 unique() 函数,这意味着 email 应该是唯一的。

$table->timestamp('email_verified_at')->nullable(): 这意味着 $table 实现了 timestamp() 方法,该方法在 users 表中创建了 email_verified_at 列。此函数还创建了两个列,即 created_atupdated_at,并且当添加或更新新记录时,这两个字段会自动更新。

down() 方法的代码如下所示

在上面的代码中,我们观察到 down() 方法使用 Schema 类调用了 dropIfExists('users') 函数。此函数检查 'users' 表是否存在,如果 'users' 存在,则它会删除 users 表。

注意: 到目前为止,我们已经了解了默认创建的表或只是一个蓝图。但是,我们也可以根据应用程序的功能创建自己的表。

要运行上面的代码,请按照下面给出的步骤操作

  • 打开 phpmyadmin,它在 xampp 中可用。
Laravel Migration Structure
  • 单击选项卡中出现的 数据库
  • 输入数据库名称,然后单击 创建 按钮。
Laravel Migration Structure
  • 单击 创建 按钮后,我们可以看到 laravel_cms 创建在面板的左侧。
Laravel Migration Structure
  • 打开 .env 文件,并添加您在上一步中添加的数据库名称。
Laravel Migration Structure

使用您创建的名称更新数据库名称,如上图所示。

  • 打开 Git Bash 窗口并输入命令 "php artisan migrate"。此命令的输出显示在下面的屏幕截图中
Laravel Migration Structure

上面的截图显示迁移表已创建。

  • 下面的屏幕截图显示了 phpmyadmin 中的迁移表。
Laravel Migration Structure
  • 下面的屏幕截图显示了 'users' 表的结构。
Laravel Migration Structure

上面的输出显示在 Git bash 窗口中运行迁移后,'users' 表已创建。


下一个主题生成迁移