有关 “迁移” 的原理:什么是迁移?

读了这一节,对什么是迁移还是不太明白。
看字面意思,好像是把数据库里的内容“迁移”到database/migrations里备份一下,而database/migrations/2014_10_12_000000_create_users_table.php
database/migrations/2014_10_12_100000_create_password_resets_table.php这2个文件就是备份文件,包含着数据库里2个表格的内容,这样理解正确吗?

如果是这样,那有点奇怪,因为后面说:

  • 当我们运行迁移时,up 方法会被调用;
  • 当我们回滚迁移时,down 方法会被调用。

updown这俩方法本身是迁移后生成的文件(database/migrations/2014_10_12_000000_create_users_table.php
database/migrations/2014_10_12_100000_create_password_resets_table.php)里的方法,也就是说,我们用这2个文件内部的方法生成了这2个文件本身,这个不太合理吧。

或者,上述2个文件不是备份文件,而是实现备份的手段?如果是这样,那么生成的备份文件储存在哪里呢?

请问我哪里理解有误?
谢谢!

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 4

数据库迁移《Laravel 5.8 中文文档》

你花时间写的问题都可以把这个看完了。

你先看简介,它已经有说明了。

4年前 评论
Katrigeng 3年前

@likunyan
我看了一遍,目前的理解是,所谓“迁移”其实压根就不是迁移,不是把某个已存在的东西从某处移动到另一处。
其实就是“创建”而已,是从无到有的过程,调用up方法在数据库里创建一个表格。
up方法其实就是一个预定义的数据库query。以后每次要增删,直接运行这个query即可,不用每次都手动输入了。
这样理解是否正确?

4年前 评论
ZsmHub 4年前

laravel框架把数据库表中的各种操作写成了migrations迁移文件, 然后可以直接通过迁移文件来操作表. 所以 , 数据迁移文件就是 操作表的语句文件 操作表的语句文件 为什么用迁移文件 , 而不直接敲 sql 操作表 ?

  1. 便于团队统一操作表.
  2. 出了问题,容易追查问题和回溯,有历史回退功能.
3年前 评论

“迁移”在中文里较多是用作“动词”,而英文原文 migrations 主要是名词,所以直译过来时容易让人转不过弯。可能叫 “迁移器” 更容易让人理解。它的主要作用是把用 PHP代码 定义的结构迁移到数据库中去。达成迁移是它的主要使命。
up 是移过去(或装上去)
down 是移回来(或拆下来)

其实很多术语的翻译有这个情况,什么时候你觉得读起来别扭,不如在翻译过来的中文术语后面加个“器”或者“化”字试试。因为大都是动词当名词用,原来的名词当动词用。

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!