laravel中建表为何要用migration来操作数据库?

原创
2016-06-06 20:22:24 1056浏览

本地用的服务器是:wampServer
在www目录下通过composer命令新建了一个laravel5项目,版本是5.1.26
在很多laravel入门教程里都是通过命令来建立数据表,然后进行数据迁移和填充的,这跟直接在phpMyAdmin或Navicat Premium里建立表有什么不同吗?如果是一样的,那么是使用laravel的migration有什么益处吗?


发完这个问题后,了解到JellyBool的laravel系列教程(https://laravist.com/),这里有文字版(https://jellybool.com/),在教程四中找到了答案:
可以将Migration看作一个数据库版本的管理工具,就如git对项目文件的版本管理,可以rollback,reset等(通过php artisan命令查看具体命令)
所以其实用Migration建表跟直接手动创建表是一样的,不同在于使用Migration有额外的管理数据库的功能:回滚/重置/更新等。

回复内容:

本地用的服务器是:wampServer
在www目录下通过composer命令新建了一个laravel5项目,版本是5.1.26
在很多laravel入门教程里都是通过命令来建立数据表,然后进行数据迁移和填充的,这跟直接在phpMyAdmin或Navicat Premium里建立表有什么不同吗?如果是一样的,那么是使用laravel的migration有什么益处吗?


发完这个问题后,了解到JellyBool的laravel系列教程(https://laravist.com/),这里有文字版(https://jellybool.com/),在教程四中找到了答案:
可以将Migration看作一个数据库版本的管理工具,就如git对项目文件的版本管理,可以rollback,reset等(通过php artisan命令查看具体命令)
所以其实用Migration建表跟直接手动创建表是一样的,不同在于使用Migration有额外的管理数据库的功能:回滚/重置/更新等。

使用这个migration
好处就是你可以在你的项目里面直接保留下表的结构信息,并且由于后面的sql实际上是生成的,哪天你不想用mysql换到pqsql, sqlite甚至oracle都会由ORM替你生成建表语句。
然后就是额外提供了一些版本控制方面的东西,看你自己是否会需要这些特性来做出评估了。

当然你也可以完全不用这个工具,用自己的习惯的方式来建表,并没有什么不妥

把schema纳入版本控制, 方便追踪和deploy
并且(只要内容不冲突)可以多人平行开发

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。