php 如何使用Laravel迁移向现有列添加注解?

jei2mxaa  于 2023-03-28  发布在  PHP
关注(0)|答案(3)|浏览(141)

我在MySQL数据库中有一个表,其中包含一些现有的列。我想使用Laravel迁移为其中一个列添加注解,以提供有关其用途的其他信息。
我知道在使用comment()方法创建迁移时可以向新列添加注解,但我不确定如何向现有列添加注解。
有人能提供一个例子,说明如何修改Laravel迁移中的现有列以添加注解吗?例如,我想在users表中的email列中添加注解。
数据库已经存在,我希望应用迁移,而不重新创建数据库的一部分,只更新它。

bq8i3lrv

bq8i3lrv1#

参见文件:https://laravel.com/docs/7.x/migrations#modifying-columns
创建移植文件

<?php

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

return new class extends Migration
{
    /**
     * Run the migrations.
     */
    public function up(): void
    {
        Schema::table('users', function (Blueprint $table) {
            $table->string('name', 255)->comment('comment added')->change();
        });
    }
};

然后

php artisan migrate

将添加评论:

mysql> show full columns from users;
+-------------------+---------------------+--------------------+------+-----+---------+----------------+---------------------------------+---------------+
| Field             | Type                | Collation          | Null | Key | Default | Extra          | Privileges                      | Comment       |
+-------------------+---------------------+--------------------+------+-----+---------+----------------+---------------------------------+---------------+
| id                | bigint(20) unsigned | NULL               | NO   | PRI | NULL    | auto_increment | select,insert,update,references |               |
| name              | varchar(255)        | utf8mb4_unicode_ci | NO   |     | NULL    |                | select,insert,update,references | comment added |
| email             | varchar(255)        | utf8mb4_unicode_ci | NO   | UNI | NULL    |                | select,insert,update,references |               |
| email_verified_at | timestamp           | NULL               | YES  |     | NULL    |                | select,insert,update,references |               |
| password          | varchar(255)        | utf8mb4_unicode_ci | NO   |     | NULL    |                | select,insert,update,references |               |
| remember_token    | varchar(100)        | utf8mb4_unicode_ci | YES  |     | NULL    |                | select,insert,update,references |               |
| created_at        | timestamp           | NULL               | YES  |     | NULL    |                | select,insert,update,references |               |
| updated_at        | timestamp           | NULL               | YES  |     | NULL    |                | select,insert,update,references |               |
+-------------------+---------------------+--------------------+------+-----+---------+----------------+---------------------------------+---------------+
8 rows in set (0.02 sec)
wfypjpf4

wfypjpf42#

首先你需要使用下面的命令安装doctrine/dbal包

composer require doctrine/dbal

然后创建迁移以进行更改

php artisan make:migration add_comment_to_email_column_in_users_table

在创建的迁移文件中进行更改

Schema::table('users', function (Blueprint $table) {
     $table->string('email')->unique()->comment('email')->change();
});

然后运行

php artisan migrate
qyyhg6bp

qyyhg6bp3#

public function up() {
  Schema::table('product', function (Blueprint $table) { 
    $table->string('product_type')
        ->comment('0 = A Industrial Products, 1 = A Consumer Products')
        ->change();
  }); 
}

相关问题