【问题标题】:Edit database column parameters from laravel (tinker)从 laravel (tinker) 编辑数据库列参数
【发布时间】:2016-11-09 12:54:23
【问题描述】:

所以我有一个带表的数据库,我需要在其中编辑一列,使其可以为空,具体来说。如何从 php artisan tinker 访问它,或者以某种方式在一张表上重新运行迁移而不丢失数据?

【问题讨论】:

标签: php database laravel laravel-artisan


【解决方案1】:

使用 tinker,您无法修改架构表。您需要像这样创建迁移:

<?php

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

class AlterTableUsers extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::table('users', function ($table) {
            $table->string('name', 50)->nullable()->default(null)->change();
        });
    }

}

在这种情况下,我们将 name 设为 null,默认值为 null。

更多信息:https://laravel.com/docs/master/migrations#modifying-columns

【讨论】:

  • 非常感谢,由于某种原因我自己在文档中找不到它
【解决方案2】:

您可以只运行建议的代码:

Schema::table('users', function ($table) {
    $table->string('name', 50)->nullable()->default(null)->change();
});

直接来自修补匠

【讨论】:

    【解决方案3】:

    是否要重新运行迁移或添加更改现有表的新迁移取决于您是在生产模式还是开发模式下进行编码。通常在开发模式下重新运行迁移可能是最佳选择(由于虚拟数据)..另一方面;在生产模式下,如果数据很重要..我们通常会添加更新现有表的新迁移(因为数据可能对我们很重要..)

    【讨论】:

      猜你喜欢
      • 2021-01-05
      • 2019-03-10
      • 1970-01-01
      • 2016-10-31
      • 2018-02-17
      • 2020-07-16
      • 2017-12-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多