繁体   English   中英

如何使用OctoberCMS迁移在现有的完整表中添加新的NOT NULL列

[英]How to add a new NOT NULL column in a existing full table using OctoberCMS migrations

我有一个具有简单结构(id,名称和时间戳)的表。

我需要添加一个段,但是系统已经在运行,并且我需要数据库中的段是唯一且不为空(因此禁止我使用默认值)。

如何添加迁移文件以添加此列并在迁移文件中填充类似于slug(name)的内容?

public function up() {
    Schema::table('departments', function(Blueprint $table) {
        $table->string('slug');
    });
}

在迁移中,您可以通过执行以下操作为列指定默认值:

// ...
$table->string('slug')->default('my-default-slug');
// ...

这将有效地将my-default-slug为运行迁移时departments内部已经存在的每条记录的值。 但是,据我所知,此设置不会阻止对子段之后被设置为空字符串的任何记录进行修改。 这就是字符串的全部内容,空字符串仍然是数据库的有效字符串。

有关列修饰符的更多信息,请参见Laravel文档

编辑

根据下面的评论,基于Eloquent模型的另一个属性,有一个很好的程序包可用于自动生成段。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM