使用现有数据库数据将不可为空的列添加到laravel迁移

时间:2014-03-10 16:58:15

标签: php mysql sqlite laravel laravel-4

我必须在现有表中添加一个新列,该表中已有数据并且遇到了一些打嗝。

  1. 如何添加此列?它将成为Not Nullable字段。我现在可以使用默认数据填充它,然后返回并稍后更新。所以如果我们需要在添加时删除约束。 我假设我需要使用直接的SQL查询。

  2. 使用PHPUnit和SQLite进行此工作,目前我收到错误SQLSTATE[HY000]: General error: 1 Cannot add a NOT NULL column with default value NULL (SQL: alter table "tracks" add column "short_description" text not null)

  3. 我如何修改此迁移?

    public function up()
    {
        Schema::table('tracks', function(Blueprint $table)
        {
            $table->text('short_description')->after('description');
        });
    }
    

1 个答案:

答案 0 :(得分:0)

您必须设置默认值:

public function up()
{
    Schema::table('tracks', function(Blueprint $table)
    {
        $table->text('short_description')->after('description')->default('default_value');
    });
}