首页 > php框架 > Laravel > 正文

Laravel如何创建和运行数据库迁移?(Migration详解)

裘德小鎮的故事
发布: 2025-12-12 14:02:04
原创
275人浏览过
Laravel数据库迁移是管理结构变更的核心机制,通过Artisan命令创建带时间戳的迁移文件,用up()和down()方法实现可逆操作,仅处理结构变更,运行用migrate命令,回滚用migrate:rollback。

laravel如何创建和运行数据库迁移?(migration详解)

在 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 命令触发实际的数据库变更:

Pebblely
Pebblely

AI产品图精美背景添加

Pebblely 96
查看详情 Pebblely
  • 执行所有未运行的迁移:php artisan migrate,Laravel 自动按时间戳顺序执行,并记录到 migrations 表中
  • 只运行某一个迁移(调试用):php artisan migrate --path=database/migrations/2024_05_10_123456_create_posts_table.php
  • 回滚上一次迁移:php artisan migrate:rollback;回滚最近 3 次:php artisan migrate:rollback --step=3
  • 重置全部迁移再重跑(慎用,仅开发环境):php artisan migrate:resetphp artisan migrate

实用小贴士

迁移不是一劳永逸,日常开发中有些细节容易忽略但影响很大:

  • 每次修改迁移文件后,别直接改已提交的迁移——应新建迁移来修正,否则团队其他成员执行会出错
  • 运行 php artisan migrate:status 可查看哪些迁移已执行、哪些待执行,状态一目了然
  • 线上环境运行迁移前,务必先备份数据库;避免在生产环境用 migrate:refreshreset
  • 如果迁移失败,检查数据库用户权限、字段长度限制(如 MySQL 默认 varchar(255) 加索引需指定长度)、引擎类型(InnoDB 支持外键)等底层约束

基本上就这些。迁移本质是“版本控制 + SQL 脚本化”,写清楚意图、保持可逆、小步提交,就能稳住数据库演进节奏。

以上就是Laravel如何创建和运行数据库迁移?(Migration详解)的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号