什么是迁移
迁移就像是数据库的版本控制。 团队可以共享和管理应用的数据库结构定义。 你或许有过在拉取代码后被要求「请在本地数据库手动加一列」的经历。迁移正好解决了这类问题。 迁移文件存放在database/migrations 目录,文件名包含时间戳,Laravel 据此决定执行顺序。
创建迁移文件
使用make:migration Artisan 命令:
create_posts_table 就会预置创建 posts 表的代码。
迁移结构
迁移类包含up 与 down 两个方法:
up:向数据库添加表、列、索引。down:撤销up的操作,用于回滚。
常见列定义方法
Blueprint 类内置多种列类型。
列修饰符
可以链式添加修饰符:执行迁移
用migrate 命令运行未执行的迁移。
回滚
回滚最近一次迁移批次:migrate:refresh 会重建所有表,既有数据会丢失,适合开发中的数据库重置。实战示例:创建 posts 表
以博客文章的posts 表为例。
1. 生成迁移
2. 编辑迁移
打开database/migrations/xxxx_xx_xx_xxxxxx_create_posts_table.php:
3. 执行迁移
posts 表。
4. 后期追加列
后期添加列时不要修改已有迁移,而是新建迁移:迁移事件
每次迁移操作会派发事件,都继承Illuminate\Database\Events\MigrationEvent。
例如可监听
MigrationsEnded 在迁移完成后清理缓存:
下一步
数据库填充
了解如何为迁移创建的表填充示例数据。
Eloquent 入门
学习通过 Eloquent ORM 操作迁移创建的表。