如何在 laravel-8 中重命名数据库中现有的 table 名称?

How to rename a existing table name inside database in laravel-8?

我开发了一个 api 负责在我的数据库中存储用户详细信息,table 名称是 users_containers,它将包含一些用户数据,现在我想重命名它table 在不丢失任何数据的情况下命名为 users_data,如何实现这件事...

Migration table

<?php

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_containers', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
          
        });
    }

要更改 table 名称,您可以这样做:

Schema::rename('users_containers', 'users_data');

进行新的迁移:

php artisan make:migration rename_usercontainers_table

然后将此代码添加到其中:

<?php

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

class RenameUsersContainersTable extends Migration
{
    
    public function up()
    {
        Schema::rename('users_containers', 'users_data');
    }
}
?>

然后尝试 运行 迁移命令: php artisan migrate