假设很久之前创建了一张活动表
php artisan make:migration create_users_table
里面的字段如下:
.
.
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->bigIncrements('id');
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
.
.
现在需要新增一个头像的字段,迁移后想在表中增加字段的方法有两种:
- 重建数据库
在原本的迁移文件中增加字段后执行
php artisan migrate:refresh
执行完后会回滚数据库的所有迁移还会接着运行 migrate
命令。相当于重建,之前的数据也会没了。
- 新加一个迁移文件
php artisan make:migration add_avatar_into_users
然后打开迁移文件
.
.
// 运行迁移时会被调用
public function up()
{
Schema::table('users',function (Blueprint $table) {
$table->string('avatar')->after('name')->nullable();
});
}
// 回滚迁移时会被调用
public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('avatar');
});
}
.
.
我们将 avatar 字段放在 name 字段后面。而修改表和创建表的区别就是 create 方法改成 table 方法。
网友评论