如何通过迁移在 Laravel 中向现有表添加新字段?
大家好!我是 Laravel(版本 10)的新手,一直搞不懂迁移。情况是这样的:我已经有一个现成的 users 表,它是在安装 Laravel 时通过标准迁移创建的。现在我需要向其中添加一个新字段 phone(string 类型,可选)。
我尝试直接编辑现有的迁移文件 create_users_table.php,并在其中添加新列,但运行 php artisan migrate 后没有任何反应——显示 "Nothing to migrate"。我明白不能这样做,因为迁移已经执行过了。
于是我通过 Artisan 创建了一个新的迁移:
php artisan make:migration add_phone_to_users_table
得到了文件 2024_01_15_123456_add_phone_to_users_table.php。我打开它并在 up() 方法中写了:
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->string('phone')->nullable();
});
}
然后运行 php artisan migrate,这次成功了!字段添加到了表中。但我不确定这是否正确,或者是否有更好的做法。另外,如果我想回滚这个更改,down() 方法应该怎么写?
请指教,谢谢!