我与->nullable()
进行了迁移
并且它已经被迁移并填充了数据。现在,我必须使此列为migrate:refresh
,但不使用rollback
或<dial timeout="30">
<number>xxx-xxx-xxxx</number>
<number>xxx-xxx-xxxx</number>
</dial>
。我怎么能做到这一点,甚至有可能。
注意:没有原始sql查询或phpmyadmin。寻找迁移方法。
答案 0 :(得分:1)
创建新的迁移并在下面添加代码:
Schema::table('table_name', function (Blueprint $table) {
$table->string('published_at')->nullable()->change();
});
或者如果使用mysql:
您可以直接在phpmyadmin中更改表的结构
转到phpmyadmin->表->结构
编辑publishd_at列并在null处打钩
答案 1 :(得分:1)
您可以创建一个新的迁移:
"name":
这将生成一个名为的新迁移文件
{"id":1, "name":"Robert"}, {"id":2, "name":"Skylar"}, {"id":3, "name":"Ben"}, {"id":4, "name":"Anne"}
在此迁移文件中,添加以下代码:
php artisan make:migration change_published_at_to_nullable
运行命令XXXX_YYY_ZZZ_000000_change_published_at_to_nullable.php
时,public function up(){
Schema::table("table", function (Blueprint $table) {
$table->string("published_at")->nullable()->change();
});
}
public function down(){
Schema::table("table", function (Blueprint $table) {
$table->string("published_at")->nullable(false)->change();
});
}
列将更改为允许php artisan migrate
。如果您需要撤消此操作,则published_at
或null
或php artisan migrate:refresh
会将列改回以允许php artisan migrate:reset
。
答案 2 :(得分:-1)
简单的方法是只运行如下查询:
ALTER TABLE my_table MODIFY published_at DATETIME NULL