我不知道如何使用Laravel框架向现有的数据库表中添加新列。

我试图编辑迁移文件使用…

<?php

public function up()
{
    Schema::create('users', function ($table) {
        $table->integer("paid");
    });
}

在终端中,我执行了php artisan migrate:install和migrate。

如何添加新列?


当前回答

我将添加到mike3875的答案,供将来使用Laravel 5.1及后续版本的读者使用。

为了让事情变得更快,你可以像这样使用标志"——table":

php artisan make:migration add_paid_to_users --table="users"

这将自动添加up和down方法内容:

/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::table('users', function (Blueprint $table) {
        //
    });
}

类似地,您可以在创建新的迁移时使用——create["table_name"]选项,这将为您的迁移添加更多的样板。这是个小问题,但在做大量的事情时很有帮助!

其他回答

步骤1

php artisan make:migration add_sex_to_users_table --table=users

步骤2

在新生成的迁移文件中,您将发现up和down钩子方法。在上勾中,添加你想要添加的列,在下勾中,添加你需要删除的列。例如,我需要在用户列上添加性,所以我将在向上钩添加下面的行。

$table->integer('quantity')->default(1)->nullable();

就像这样

public function up()
{
    Schema::table('service_subscriptions', function (Blueprint $table) {
        $table->integer('quantity')->default(1)->nullable();
    });
}

步骤3

执行如下迁移命令

php artisan migrate

然后您将添加一个新列

这个东西在laravel 5.1上工作。

首先,在终端上执行这段代码

php artisan make:migration add_paid_to_users --table=users

然后转到项目目录,展开目录database - migration,编辑文件add_paid_to_users.php,添加这段代码

public function up()
{
    Schema::table('users', function (Blueprint $table) {
         $table->string('paid'); //just add this line
    });
}

然后返回到您的终端并执行此命令

php artisan migrate

希望这对你有所帮助。

在拉拉维尔 8

php artisan make:migration add_columnname_to_tablename_table --table=tablename

然后在创建迁移之后

public function up()
    {
        Schema::table('users', function (Blueprint $table) {

            // 1. Create new column
            $table->datatype('column_name')->nullable();
        });
    }
public function down()
    {
        Schema::table('users', function (Blueprint $table) {

            // 1. Create new column
            $table->dropColumn('column_name');
        });
    }

然后运行

php artisan migrate

如果遇到错误,则用创建表之前的日期重命名迁移名称,然后再次运行PHP artisan migrate

我将添加到mike3875的答案,供将来使用Laravel 5.1及后续版本的读者使用。

为了让事情变得更快,你可以像这样使用标志"——table":

php artisan make:migration add_paid_to_users --table="users"

这将自动添加up和down方法内容:

/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::table('users', function (Blueprint $table) {
        //
    });
}

类似地,您可以在创建新的迁移时使用——create["table_name"]选项,这将为您的迁移添加更多的样板。这是个小问题,但在做大量的事情时很有帮助!

你可以像这样在初始的Schema::create方法中添加新列:

Schema::create('users', function($table) {
    $table->integer("paied");
    $table->string("title");
    $table->text("description");
    $table->timestamps();
});

如果您已经创建了一个表,您可以通过创建一个新的迁移并使用Schema::table方法向该表添加额外的列:

Schema::table('users', function($table) {
    $table->string("title");
    $table->text("description");
    $table->timestamps();
});

关于这一点,文档相当详尽,从版本3到版本4没有太大的变化。