laravel中建表为何要用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有额外的管理数据库的功能:回滚/重置/更新等。
回复内容:
本地用的服务器是: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
并且(只要内容不冲突)可以多人平行开发