美文网首页
Laravel使用Migration向已存在的表添加1列或多列

Laravel使用Migration向已存在的表添加1列或多列

作者: i娟儿 | 来源:发表于2020-02-04 13:46 被阅读0次

    Laravel迁移示例教程。
    本教程将一步一步地讲解如何在现有数据库表中添加单个或多个列。
    开发迭代过程中,我们时常需要在数据库表中添加新列。今天将向您展示如何使用Laravel migration将新的列或列添加到现有表中。

    将通过以下三种方面介绍Laravel Migration的使用:

    1. 在现有表中添加单列
    2. 在现有表中添加多列
    3. 可用列类型

    1. 在现有表中添加单列

    a) 使用Laravel Migration迁移将新列添加到现有表中。打开终端,使用以下命令创建迁移文件:

    php artisan make:migration add_type_to_notes
    

    它将在迁移文件夹中创建一个add_type_to_notes文件。应该是这样的-


    Laravel Migration在现有表中添加单列

    b) 执行迁移命令:
    在终端中运行下面给定的命令。它会向您的表中添加一个新列:

    php artisan migrate
    

    现在可以转到数据库表,查看表中是否有新列。已使用迁移命令成功添加.

    2. 在现有表中添加多列

    a) 如果需要添加多个列,则需要在终端中添加以下命令:

    php artisan make:migration add_multiple_column_to_notes
    

    b) 上面的命令将创建一个新的迁移文件,因此需要转到数据库/迁移文件夹,打开文件并根据您的需要添加列:


    Laravel Migration在现有表中添加多列

    c) 最后,运行下面的命令在数据库表中添加列

    php artisan migrate
    

    3. 可用列类型介绍

    Laravel schema builder提供了多种列类型,您可以在构建表时指定这些类型:

    命令 介绍
    $table->bigIncrements('id'); 自动递增无符号BIGINT(主键)等效列。
    $table->bigInteger('votes'); BIGINT等效列。
    $table->binary('data'); BLOB等效列
    $table->boolean('confirmed'); BOOLEAN 等效列
    $table->char('name', 100); CHAR equivalent column with an optional length.
    $table->date('created_at'); DATE 等效列
    $table->dateTime('created_at'); DATETIME 等效列
    $table->dateTimeTz('created_at'); DATETIME(带时区) 等效列
    $table->decimal('amount', 8, 2); DECIMAL 等效列,带有精度(总位数)和小数位数。
    $table->double('amount', 8, 2); DOUBLE 等效列, 带有精度(总位数)和小数位数。
    $table->enum('level', ['easy', 'hard']); ENUM 等效列
    $table->float('amount', 8, 2); FLOAT 等效列 , 带有精度(总位数)和小数位数。
    $table->geometry('positions'); GEOMETRY 等效列
    $table->geometryCollection('positions'); GEOMETRYCOLLECTION 等效列
    $table->increments('id'); Auto-incrementing UNSIGNED INTEGER (primary key) 等效列
    $table->integer('votes'); INTEGER 等效列
    $table->ipAddress('visitor'); IP address 等效列
    $table->json('options'); JSON 等效列
    $table->jsonb('options'); JSONB 等效列
    $table->lineString('positions'); LINESTRING 等效列
    $table->longText('description'); LONGTEXT 等效列
    $table->macAddress('device'); MAC address 等效列
    $table->mediumIncrements('id'); 自动递增无符号整型(主键)等效列
    $table->mediumInteger('votes'); MEDIUMINT 等效列
    $table->mediumText('description'); MEDIUMTEXT 等效列
    $table->morphs('taggable'); 添加taggable_id UNSIGNED BIGINT和taggable_type VARCHAR等效列。
    $table->uuidMorphs('taggable'); 添加taggable_id UNSIGNED BIGINT和taggable_type VARCHAR等效列。
    $table->multiLineString('positions'); 多行等效列。
    $table->multiPoint('positions'); MULTIPOINT 等效列
    $table->multiPolygon('positions'); MULTIPOLYGON 等效列
    $table->nullableMorphs('taggable'); 添加morfs()列,列可为空。
    $table->nullableUuidMorphs('taggable'); 添加UuidMorps()列,列可为空。
    $table->nullableTimestamps(); Alias of timestamps() method.
    $table->point('position'); POINT 等效列
    $table->polygon('positions'); POLYGON 等效列
    $table->rememberToken(); 添加一个可为空的remember_token VARCHAR(100)等效列
    $table->set('flavors', ['strawberry', 'vanilla']); SET 等效列
    $table->smallIncrements('id'); 自动递增无符号SMALLINT(主键)等效列
    $table->smallInteger('votes'); SMALLINT 等效列
    $table->softDeletes(); 软删除的TIMESTAMP 等效列
    $table->softDeletesTz(); 软删除的TIMESTAMP(带时区) 等效列
    $table->string('name', 100); 具有可选长度的VARCHAR等效列。
    $table->text('description'); TEXT 等效列
    $table->time('sunrise'); TIME 等效列
    $table->timeTz('sunrise'); TIME (with timezone) 等效列
    $table->timestamp('added_on'); TIMESTAMP 等效列
    $table->timestampTz('added_on'); TIMESTAMP (带时区) 等效列
    $table->timestamps(); 添加可为空的created_at和updated_at TIMESTAMP等效列。
    $table->timestampsTz(); 添加可为空的created_at和updated_at TIMESTAMP(带时区)等效列。
    $table->tinyIncrements('id'); 自动递增无符号TINYINT(主键)等效列
    $table->tinyInteger('votes'); TINYINT 等效列
    $table->unsignedBigInteger('votes'); UNSIGNED BIGINT 等效列
    $table->unsignedDecimal('amount', 8, 2); U具有精度(总位数)和小数位数(十进制位数)的无符号十进制等效列。
    $table->unsignedInteger('votes'); UNSIGNED INTEGER 等效列
    $table->unsignedMediumInteger('votes'); UNSIGNED MEDIUMINT 等效列
    $table->unsignedSmallInteger('votes'); UNSIGNED SMALLINT 等效列
    $table->unsignedTinyInteger('votes'); UNSIGNED TINYINT 等效列
    $table->uuid('id'); UUID 等效列
    $table->year('birth_year'); YEAR 等效列

    4. 结论

    Larave Magration 您在此了解了如何给已存在的表添加单个或多个新列。
    以后会逐渐更新其他Laravel命令的使用。

    相关文章

      网友评论

          本文标题:Laravel使用Migration向已存在的表添加1列或多列

          本文链接:https://www.haomeiwen.com/subject/sydrxhtx.html