我必须向已有数据的现有表中添加一个新列,但遇到了一些问题。
如何添加此列?它将成为一个
Not Nullable
字段。我现在可以用默认数据填充它并稍后返回并更新。所以如果我们需要在添加时删除约束。 我假设我将需要使用直接的 SQL 查询。使用 PHPUnit 和 SQLite 进行这项工作,目前我收到错误
SQLSTATE[HY000]:一般错误:1 无法添加默认值为 NULL 的 NOT NULL 列(SQL:alter table "轨道”添加列“short_description”文本不为空)
我将如何修改此迁移?
public function up()
{
Schema::table('tracks', function(Blueprint $table)
{
$table->text('short_description')->after('description');
});
}
最佳答案
您必须设置默认值:
public function up()
{
Schema::table('tracks', function(Blueprint $table)
{
$table->text('short_description')->after('description')->default('default_value');
});
}
关于php - 使用现有数据库数据将不可空列添加到 laravel 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22306460/