laravel迁移可版本化管理数据库结构,通过Artisan命令创建、执行和回滚迁移文件,实现多环境结构同步;使用make:migration生成文件,up()定义变更、down()回滚,配合migrate等命令操作;结合Seeder填充测试数据,提升团队协作与部署稳定性。

Laravel 的数据库迁移(Migration)功能是管理数据库结构的利器,它让你像版本控制代码一样管理数据库变更。通过命令行创建和执行迁移文件,可以轻松在不同环境中同步表结构,避免手动修改带来的不一致问题。
创建迁移文件
使用 Artisan 命令快速生成迁移文件:
如果需要附带模式定义,可加上 –create 或 –table 参数:
-
php artisan make:migration create_posts_table --create=posts:会自动生成带有基础字段的骨架 -
php artisan make:migration add_email_to_users_table --table=users:用于修改已有表
编写迁移逻辑
每个迁移文件包含两个核心方法:up() 和 down()。
- up():定义如何应用变更,比如创建表或添加字段
- down():定义如何回滚变更,应与 up 方法对称
示例:创建 posts 表
public function up() { Schema::create('posts', function (Blueprint $table) { $table->id(); $table->string('title'); $table->text('content'); $table->unsignedBigInteger('user_id'); $table->timestamps(); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); }); } public function down() { Schema::dropIfExists('posts'); }
执行与回滚迁移
迁移写好后,通过以下命令操作:
- php artisan migrate:运行所有未执行的迁移
- php artisan migrate:rollback:回滚最后一次迁移批次
- php artisan migrate:refresh:先回滚全部再重新执行,适合开发重置
- php artisan migrate:fresh:删除所有表并重新迁移,更彻底
注意:生产环境慎用 refresh 和 fresh,建议配合备份策略。
使用 Seeder 填充测试数据
迁移只管结构,数据填充可用 Seeder 配合完成。
- 生成 Seeder:
php artisan make:seeder UserSeeder - 在 run() 方法中使用 Eloquent 或 DB 类插入数据
- 运行:
php artisan db:seed或指定类:php artisan db:seed --class=UserSeeder
可在 DatabaseSeeder 中调用多个 Seeder,形成初始化流程。
基本上就这些。合理使用 Migration 能大幅提升团队协作效率和部署稳定性,关键是保持迁移文件细粒度、语义清晰,并与实际发布节奏匹配。
以上就是Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势的详细内容,更多请关注php中文网其它相关文章!