📜  外国 id laravel 迁移 - PHP (1)

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

外国 ID Laravel 迁移

在 Laravel 中,迁移是数据库底层结构的更新和维护的一种方式。其中一个迁移类型是外键迁移,它旨在维护表之间的关联性。在某些情况下,您可能需要在外部数据库中使用标识符作为外键。 在这种情况下,您需要使用外部 ID Laravel 迁移。

准备

在继续编写外部 ID Laravel 迁移之前,您需要了解以下内容:

  • Laravel 框架
  • 数据库迁移
  • 数据表创建
  • SQL
环境配置

在开始编写外部 ID Laravel 迁移之前,您需要配置 .env 文件。

首先,您需要确保已经安装您要使用的数据库驱动程序。 然后,将数据库的名称、用户名和密码添加到 .env 文件中。

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=external_database
DB_USERNAME=root
DB_PASSWORD=
创建外部 ID Laravel 迁移

在 Laravel 中,您可以使用 Artisan 命令行工具来创建数据库迁移。 在终端中,键入以下命令:

php artisan make:migration create_users_table --create=users

这会为您创建一个新的迁移文件,该文件用于创建 users 数据表。在此示例中,迁移文件的文件名为 create_users_table

在您创建的迁移文件中,您需要定义两个核心函数 updownup 函数用于创建新的数据表(或更改现有数据表),而 down 函数用于撤消对 up 函数的更改。

在此迁移文件的 up 函数中,您需要使用正常的 Laravel 数据库迁移定义来创建数据表,并添加 unsignedBigInteger 列来存储外部 ID。

Schema::create('users', function (Blueprint $table) {
    $table->unsignedBigInteger('external_id'); // add external ID column
    $table->string('name');
    $table->string('email')->unique();
    $table->timestamp('email_verified_at')->nullable();
    $table->string('password');
    $table->rememberToken();
    $table->timestamps();

    $table->primary('external_id'); // set external ID as primary key
});

在此示例中,我们将 external_id 添加为 unsignedBigInteger 列,并将其设置为主键。 这将强制执行唯一性和非空性。

接下来,您需要创建外部 ID 的迁移文件。 在您 up 函数的底部,添加以下代码:

DB::statement('ALTER TABLE `users` MODIFY `external_id` BIGINT UNSIGNED');

此语句将修改 users 数据表的结构,以使 external_id 列的类型为 BIGINT UNSIGNED

最后,在 down 函数中,撤消您在 up 函数中所做的更改。

Schema::dropIfExists('users');

此代码将删除 users 数据表。

运行迁移

编写外部 ID Laravel 迁移完毕后,运行迁移。 在终端中,键入以下命令:

php artisan migrate

该命令将在数据库中运行您创建的所有迁移。

结论

通过使用外部 ID Laravel 迁移,您可以指定外部数据库中的标识符作为主键,从而在 Laravel 应用程序中维护表之间的关联性。