创建迁移 在laravel中使用make:migration命令来创建迁移 php artisan make:migration create_user_table 执行上面的命令后这时候会在database/migrations 目录下生成对应的迁移文件,每个迁移的文件名都包含
创建迁移
在laravel中使用make:migration命令来创建迁移
php artisan make:migration create_user_table
执行上面的命令后这时候会在database/migrations 目录下生成对应的迁移文件,每个迁移的文件名都包含一个时间戳来让 Laravel 确认迁移的顺序。
迁移结构
一个迁移类包含两个方法: up 和 down。up 方法是用于新增数据库的数据表、字段或者索引的,而 down 方法应该与 up 方法的执行操作相反。
up方法
public function up()
{
Schema::create('user', 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();
});
}
down方法
public function down()
{
Schema::dropIfExists('user');
}
运行迁移
php artisan migrate
大多数迁移操作都是破坏性的,这意味着也许会丢失数据。为了防止有人在生产环境数据中运行这些命令,在执行这些命令之前将提示你进行确认。如果要强制迁移命令在没有提示的情况下运行,请使用 --force 参数。
php artisan migrate --force
迁移回滚
php artisan migrate:rollback
通过向 rollback 命令加上 step 参数,可以回滚指定数量的迁移
php artisan migrate:rollback --step=5
migrate:reset 命令将会滚回你应用程序所有的迁移:
php artisan migrate:reset
回滚后迁移
migrate:refresh 命令将会在回滚你所有的迁移后执行 migrate 命令。这个命令可以高效的重新创建你的整个数据库:
php artisan migrate:refresh
// 刷新数据库并执行数据库填充
php artisan migrate:refresh --seed
修改字段
change 方法可以将现有的字段类型修改为新的类型或修改属性,例:
Schema::table('users', function (Blueprint $table) {
$table->string('name', 50)->change();
});
renameColumn方法来重命名字段,依赖于doctrine/dbal拓展,例:
Schema::table('users', function (Blueprint $table) {
$table->renameColumn('from', 'to');
});
删除字段
dropColumn 方法来删除字段,例:
Schema::table('users', function (Blueprint $table) {
$table->dropColumn(['votes', 'avatar', 'location']);//删除votes,avatar,location字段
});