您的位置:首页 > 编程语言 > PHP开发

Laravel框架下,wamp中数据库的迁移,踩过的坑

2015-12-25 10:28 411 查看
对于我近一两个礼拜来搭建环境所踩过的坑做一个综合的记录,也许对后人有用:

首先说明一下我要做的事情:

原来的项目使用laravel框架在公司内部的git服务器上,我需要在本地整理好环境,进行开发。说起来很简单的一件事情,但是发生了很多的问题。

1.首先是将项目源文件拉下来

我在这里犯得错误是,直接将别人的文件夹包括.git文件夹都拷贝过来了(主要是因为太大了,clone太慢),但是就出现了问题。这个毕竟是别人的git库,我没办法与服务器进行push和pull操作,总是报错,报各种各样的问题。具体问题忘记了,但是言而总之,正确的操作还是应该是git clone,这样git会帮你把本地文件夹和远程服务端仓库关联起来,以后就可以正常的进行pull和push。

2.数据库的迁移

先使用laravel框架中php artisan migrage命令,新建数据库表。然后从服务器数据库中导出数据库sql文件,再在本地导入。也是很简单的事情。

遇到的问题:

首先,由于操作的失误,我希望将Mysql中的数据库删除。首先,我使用drop database databaseName命令,反应超级慢,半天没反应。等了很久之后,退出了Mysql再重新登录,显示数据库还在,但是里面的表已经都没有了。此时有可能会有问题,需要去数据库的data文件夹看看,如果有残余文件也一并删除。

还有一个错误行为,我直接删除了数据库中的data数据,然后重新新建,再调用php artisan migrate命令的时候,总是报表已经存在,生成表的命令无法执行。在执行一次drop database操作后,php artisan migrate命令即可正常使用。

在正常生成表后,使用sql文件导入数据库记录。报错:外键约束的错误,需要处理,先暂时将数据库的外键约束去掉,再进行导入(在这里发生小插曲,提示某个表的字段不存在,显然这个应该是migrate中未写出来的,数据库中有的,小错误调整一下即可)。

去掉外键约束:set @@global.foreign_key_checks=0(恢复改为1即可),显示外键约束:select @@foreign_key_checks;

最后还有一个问题,表在导出时,在表的最后部分有约束条件也导出了,但是在导入的时候提示重复的约束条件。猜想是migrate操作的时候已经建立了这样的约束条件,所以再次导入约束条件会报约束条件名重复的问题。验证:我是将本地数据库导出看的时候,发现最下面果然已经存在约束调整了,充分说明了这一点。

3.最后还有一个问题:当我昨天导入的数据库都正常能显示,能看,只是没有用web项目来看。但是今天再打开数据库提示各种数据表都找不到,明显show tables;表都是存在的。最后参考网上的做法,修改数据库大小写不敏感(原来是0不敏感改成了1,再测试数据库可以正常使用了),后来将1再改回0还是可以正常使用。那就不知道什么原因了,各种抽风,随便吧!反正总算是环境搭通了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: