数据库迁移notnull()?

时间:2017-04-17 09:47:07

标签: database-migration laravel-5.4

我使用迁移将nullable()添加到列。

class ChangeUgIdCanNull extends Migration
{
  public function up()
  {
    Schema::table('service_request_step', function (Blueprint $table) {
      $table->dropForeign(['ug_id']);
    });
    Schema::table('service_request_step', function (Blueprint $table) {
      $table->dropIndex(['ug_id']);
    });
    Schema::table('service_request_step', function (Blueprint $table) {
      $table->integer('ug_id')->unsigned()->index()->nullable()->change();
      $table->foreign('ug_id')->references('ug_id')
            ->on('user_group')->onDelete('cascade');
    });
  }

  public function down()
  {
    Schema::table('service_request_step', function (Blueprint $table) {
      $table->dropForeign(['ug_id']);
    });
    Schema::table('service_request_step', function (Blueprint $table) {
      $table->dropIndex(['ug_id']);
    });
    Schema::table('service_request_step', function (Blueprint $table) {
      $table->integer('ug_id')->unsigned()->index()->change();
      $table->foreign('ug_id')->references('ug_id')
            ->on('user_group')->onDelete('cascade');
    });
  }
}

当我使用php artisan migrate时很好。 但是,当我想要php artisan migrate:rollback.在我的数据库中' ug_id'列仍然可以为空。 我有一些功能,如$table->integer('ug_id')->unsigned()->index()->notnull()->change();

Laravel Version: 5.4.19
PHP Version: 7.1.3
Database Driver & Version: 10.2.4-MariaDB

1 个答案:

答案 0 :(得分:1)

您可以使用nullable(false)。 你的代码应该是

$table->integer('ug_id')->unsigned()->index()->nullable(false)->change();