Laravel数据库迁移是管理结构变更的核心机制,通过Artisan命令创建带时间戳的迁移文件,用up()和down()方法实现可逆操作,仅处理结构变更,运行用migrate命令,回滚用migrate:rollback。

在 Laravel 中,数据库迁移(Migration)是管理数据库结构变更的核心机制,它让团队协作和环境部署更安全、可追溯。创建和运行迁移其实不复杂,但关键在于理解它的设计逻辑和常见用法。
如何创建一个迁移文件
Laravel 提供 Artisan 命令快速生成迁移文件,文件会自动存放在 database/migrations/ 目录下,并带时间戳前缀,确保执行顺序。
- 创建一张新表:运行 php artisan make:migration create_users_table,Laravel 会生成类似
2024_05_10_123456_create_users_table.php的文件 - 为已有表添加字段:用 php artisan make:migration add_email_to_users_table,文件名体现意图,便于后续识别
- 如果想指定表名或字段,可以加 --create=posts 或 --table=users 参数,命令会自动填充基础结构
迁移文件里写什么
每个迁移类包含两个核心方法:up() 定义“升级”操作(如建表、加字段),down() 定义“回滚”操作(如删表、删字段),必须一一对应,保证可逆性。
-
up() 中使用 Schema 构建器定义结构,比如
Schema::create('posts', function (Blueprint $table) { $table->id(); $table->string('title'); $table->timestamps(); }); -
down() 一般直接删表:
Schema::dropIfExists('posts');;如果是修改字段,需用dropColumn()或renameColumn()等明确操作 - 不要在迁移中写业务逻辑或大量数据操作,迁移只管结构。数据填充用 Seeder,不是 Migration
如何运行和回滚迁移
迁移文件写好后,用 Artisan 命令触发实际的数据库变更:
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~