关于laravel框架migration的一些理解

laravel框架中到migration相当于一个数据库的版本控制器,和大家经常用的一些软件svn或者git比较类似,那么,为什么laravel框架要引入这个,是为了解决什么问题呢?

首先一点就是安全,怎么个安全法,就是说把所有操作数据库的工作都放到了应用层来解决,这样就算是报错,也会是应用层的报错,不会到数据库去报错,最后migration会把你写的所有操作转化成数据库的sql来执行,并且非常人性化的是,migration里面对一些常用的主键id或者数据表的添加时间修改时间都有很好到封装,为开发省去很多不必要到操作

那么第二点是为了解决一个什么痛点呢,举个例子,就是大家中开发过程中,一般来说多人开发的情况下,每个人的本地数据库是要比服务器线上的数据库版本更新的,但是这个时间如果一个人开发完成,要把自己到数据库结构放到服务器上,一般情况下是两种操作,一种就是把自己添加的那些字段,修改的那些表一个个去找出来再服务器上再去添加,极为费时费力,还有一种就是把本地的数据表结构转化为sql文件,但是这样上传上去,也会导致服务器原始数据全部丢失,极为风险,而migration就很好的解决了这个问题,他会把你所有的修改都记录到一个文件,就像版本控制器一样,为可以更新到新到版本,感觉有问题还可以回退,是不是很方便

最后还有一个关于migration注意到地方就是说msyql到8.0之后会对用户的验证方式进行升级,而这个升级导致大部分的php程序是不支持的,所以升级数据库需谨慎,当然,要是已经完成升级到可以根据下面到操作来支持migration

第一步 找到你mysql服务器到配置文件my.conf添加如下内容

[mysqld]

default_authentication_plugin=mysql_native_password

第二步由于原来创建的用户还是使用的新的验证方式,我们需要修改为老到

 

ALTER USER 'root'@'localhost' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER;

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';

FLUSH PRIVILEGES;

第三步重启你到msyql,就可以愉快到开发啦,奥利给


 

 

你可能感兴趣的:(关于laravel框架migration的一些理解)