Laravel migrations表条目误删后如何恢复?避免数据丢失
恢复Laravel中误删的migrations表条目方案
完全可行,以下是具体操作步骤:
方法一:手动插入迁移记录
- 前往项目的
database/migrations目录,收集所有已经实际执行过的迁移文件名(这些文件对应的表已经存在于数据库中),文件名的时间戳顺序就是当初的执行顺序。 - 打开数据库终端,执行SQL插入语句,将这些迁移文件名批量插入
migrations表:
INSERT INTO migrations (migration, batch) VALUES ('2024_01_01_000000_create_users_table.php', 1), ('2024_01_02_000000_create_posts_table.php', 1), -- 继续添加所有已对应数据库表的迁移文件名
batch字段可统一设为1,若记得原批次分组,也可按实际情况分配相同批次号。
方法二:借助Artisan命令辅助
- 运行
php artisan migrate:status,该命令会列出所有迁移文件的状态(此时会显示全部未执行,因为migrations表为空),以此确认需要处理的迁移列表。 - 运行
php artisan migrate --pretend,查看将要执行的SQL语句,对比数据库中已有的表,筛选出那些已经创建过表的迁移文件。 - 按照方法一的方式,将这些筛选后的迁移文件名插入到
migrations表中。
注意事项
- 插入的迁移文件名必须与
database/migrations目录下的文件完全一致,包括时间戳和后缀。 - 操作前建议备份数据库,避免因误操作导致数据问题。
- 若项目自定义过
migrations表结构,需对应调整插入语句的字段。
内容的提问来源于stack exchange,提问作者Rehmat Ullah
相关产品推荐
相关产品推荐

