0

0

laravel怎么进行数据库迁移和回滚_laravel数据库迁移与回滚操作

穿越時空

穿越時空

发布时间:2025-10-28 16:19:01

|

821人浏览过

|

来源于php中文网

原创

使用Laravel数据库迁移可保持团队数据库结构一致。1、通过php artisan make:migration创建迁移文件,支持新建表或修改表;2、在up()方法中定义变更逻辑,down()中定义回滚操作,并安装doctrine/dbal支持字段修改;3、执行php artisan migrate应用未执行的迁移,系统记录至migrations表;4、若需撤销,可用php artisan migrate:rollback回退最后一次迁移,支持step参数控制回滚次数;5、使用php artisan migrate:reset清空所有迁移,或php artisan migrate:refresh重置并重新执行迁移,结合--seed可刷新测试数据。

laravel怎么进行数据库迁移和回滚_laravel数据库迁移与回滚操作

如果您在开发 Laravel 应用时需要对数据库结构进行变更,但希望保持团队成员之间的数据库结构一致,则可以通过数据库迁移功能来管理数据库的版本控制。以下是执行数据库迁移与回滚的操作步骤:

本文运行环境:MacBook Pro,macOS Sonoma

一、创建数据库迁移文件

迁移文件用于定义数据库表的创建或修改逻辑。通过 Artisan 命令可以快速生成一个新的迁移文件。

1、打开终端并进入项目根目录,执行以下命令来创建一个用于创建数据表的迁移文件:
php artisan make:migration create_users_table --create=users

2、如果要为已有数据表添加字段,可执行如下命令生成迁移文件:
php artisan make:migration add_email_to_users_table --table=users

3、Laravel 会在 database/migrations 目录下生成带有时间戳的 PHP 文件,您可以在其中编辑 up() 和 down() 方法来定义变更逻辑。

二、编写迁移文件中的结构变更逻辑

在迁移文件中,up() 方法用于定义如何修改数据库结构,down() 方法则用于定义如何撤销这些更改。

1、在 up() 方法中使用 Schema 构建器添加字段或创建表,例如:
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->string('email')->unique();
$table->timestamps();
});

2、在 down() 方法中定义对应的删除操作,例如:
Schema::dropIfExists('users');

3、对于修改表结构的情况,需先引入 Doctrine DBAL 扩展库以支持字段变更,安装命令为:
composer require doctrine/dbal

三、执行数据库迁移

运行 migrate 命令将所有未执行的迁移文件应用到当前数据库环境中。

Magic Eraser
Magic Eraser

AI移除图片中不想要的物体

下载

1、在终端中执行以下命令启动迁移过程:
php artisan migrate

2、系统会提示确认操作,输入 yes 确认执行。成功后,Laravel 会自动在数据库中创建 migrations 表来记录已执行的迁移文件。

3、若希望在特定环境下运行迁移(如测试环境),可指定环境参数:
php artisan migrate --env=testing

四、回滚最近一次迁移

当最新一次迁移出现错误或需要撤销时,可使用 rollback 命令回退最后一次批量执行的迁移。

1、执行以下命令来回滚上一批次的所有迁移:
php artisan migrate:rollback

2、该命令会调用每个迁移文件中的 down() 方法,并从 migrations 表中移除对应记录。

3、若需限制回滚的批次数量,可使用 step 参数,例如只回滚前一步:
php artisan migrate:rollback --step=1

五、完全重置并重新执行所有迁移

在开发过程中,有时需要彻底清空数据库并重新构建整个结构,此时可使用 reset 命令。

1、执行以下命令将回滚所有已执行的迁移:
php artisan migrate:reset

2、若希望在清空后立即重新应用所有迁移,可使用 refresh 命令:
php artisan migrate:refresh

3、结合 seed 参数可在刷新数据库后自动填充测试数据:
php artisan migrate:refresh --seed

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2687

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1661

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1522

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

953

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1419

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1235

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1488

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1306

2023.11.13

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Laravel---API接口
Laravel---API接口

共7课时 | 0.6万人学习

PHP自制框架
PHP自制框架

共8课时 | 0.6万人学习

PHP面向对象基础课程(更新中)
PHP面向对象基础课程(更新中)

共12课时 | 0.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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