Laravel迁移通过代码管理数据库结构,使用Artisan命令创建或修改数据表,编写up和down方法定义变更与回滚,执行migrate命令同步结构,确保团队开发一致性,提升部署安全性。

Laravel 的数据库迁移(Migration)功能让你能够以代码形式管理数据库结构,实现跨环境的数据库同步。通过迁移文件,你可以创建、修改和删除数据表及字段,而无需手动操作数据库。下面介绍如何在 Laravel 中编写和运行数据库迁移。
创建迁移文件
使用 Artisan 命令行工具可以快速生成迁移文件:
-
创建新数据表:运行
php artisan make:migration create_users_table --create=users,会在database/migrations目录下生成一个带create方法的迁移文件。 -
修改已有数据表:运行
php artisan make:migration add_email_to_users_table --table=users,会生成用于更新表结构的迁移文件,包含up和down方法。
编写迁移逻辑
在生成的迁移文件中,主要编辑 up() 和 down() 两个方法:
- up() 方法:定义你要执行的数据库变更,比如创建表或添加字段。
-
down() 方法:定义回滚操作,用于撤销
up()中的更改。
示例:创建 users 表
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
如果要为已有表添加字段:
Schema::table('users', function (Blueprint $table) {
$table->string('phone')->nullable();
});
运行和管理迁移
编写完成后,使用以下命令执行迁移:
-
执行所有未运行的迁移:
php artisan migrate -
回滚最后一次迁移:
php artisan migrate:rollback -
回滚到初始状态:
php artisan migrate:reset -
重新执行所有迁移:
php artisan migrate:refresh(常用于开发阶段重置数据库) -
查看迁移状态:
php artisan migrate:status可列出所有迁移及其执行状态。
注意事项与最佳实践
编写迁移时注意以下几点:
- 保持迁移文件小而专注,每个文件只做一件事。
- 确保
down()方法能正确回滚,避免数据丢失。 - 团队协作时,提交迁移文件到版本控制,保证成员间数据库结构一致。
- 生产环境执行迁移前,建议先备份数据库。
基本上就这些。Laravel 迁移让数据库版本管理变得简单可靠,合理使用能大幅提升开发效率和部署安全性。










