博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Laravel 5.2数据库--迁移migration
阅读量:6209 次
发布时间:2019-06-21

本文共 1815 字,大约阅读时间需要 6 分钟。

   Laravel中的migrations文件存放的是数据库表文件等结构,可以说是一个跟git差不多的,可以说像是数据库的版本控制器,所以可以叫做迁移。因为它可以很快速的很容易地构建应用的数据库表结构。

  1. 生成迁移

  使用 Artisan 命令make:migration来创建一个新的迁移:

1 php artisan make:migration create_users_table

  就会在database/migrations目录下生成新的迁移文件,而已名称都是包含时间戳,因此预先laravel判断其顺序。

      2.迁移文件的目录结构

   里面包含了两个方法:updownup方法用于新增表,列或者到数据库,而down方法就是up方法的反操作,和up里的操作相反。

increments('id'); $table->string('name'); $table->string('airline'); $table->timestamps(); }); } /** * 撤销迁移 * * @return void */ public function down() { Schema::drop('flights'); }}

    3.进行文件迁移

php artisan migrate

    4、迁移回滚

    想要回滚最新的一次迁移”操作“,可以使用rollback命令,注意这将会回滚最后一批运行的迁移,可能包含多个迁移文件:

php artisan migrate:rollback

    migrate:reset命令将会回滚所有的应用迁移:

php artisan migrate:reset

    migrate:refresh命令将会先回滚所有数据库迁移,然后运行migrate命令。这个命令可以有效的重建整个数据库:

php artisan migrate:refresh
php artisan migrate:refresh --seed

 

    在up方法里面创建列的时候,发现想要用varchar字符类型找不到,原来laravel的varchar类型变成了string()方法了,在用的时候:

$table->string('name', 100);   //等同于数据库中的 VARCHAR,带一个长度

  

    二、创建索引

  1、一般可用索引类型有:主键索引、混合索引、唯一索引、自定义索引名称、普通索引。

命令 描述
$table->primary('id'); 添加主键索引
$table->primary(['first', 'last']); 添加混合索引
$table->unique('email'); 添加唯一索引
$table->unique('state', 'my_index_name'); 指定自定义索引名称
$table->index('state'); 添加普通索引

 

命令 描述
$table->dropPrimary('users_id_primary'); 从 “users”表中删除主键索引
$table->dropUnique('users_email_unique'); 从 “users”表中删除唯一索引
$table->dropIndex('geo_state_index'); 从 “geo”表中删除普通索引

 

 

 

 

  出错误问题:                                                          

  [Symfony\Component\Debug\Exception\FatalThrowableError] 

  Call to a member function comment() on null             

       出现这个问题的原因是我在添加列$table->timestamps();时间戳的时候,后面链式调用了注释方法$table->timestamps()->comment('时间');

这是由于$table->timestamps();这个timestamps()方法里面是没有return  $this; 的结果导致的。

  

转载于:https://www.cnblogs.com/smallyi/p/6515151.html

你可能感兴趣的文章
变态青蛙跳
查看>>
Git常用命令总结
查看>>
定时任务
查看>>
MyBatis之输入与输出(resultType、resultMap)映射
查看>>
剥开比原看代码09:通过dashboard创建密钥时,前端的数据是如何传到后端的?
查看>>
51、YUM安装配置LAMP、phpMyAdmin实战
查看>>
Yeslab现任明教教主ISE课程前七部分免费发布
查看>>
linux下恢复误删文件
查看>>
Universal-Image-Loader,android-Volley,Picasso、Fresco和Glide开源组件加载网络图片的优缺点比较...
查看>>
RAID的肤浅认识
查看>>
poxtfix+dovecot+saslauthd+courier-authlib +mysql + extmail 完整虚拟邮箱系统部署
查看>>
Erlang并发机制 –进程调度
查看>>
XEN--转载自鸟哥的linux私房菜
查看>>
我的第一程序语言python
查看>>
DHCP服务开启了,为什么老是网络冲突
查看>>
跳出多重循环 JS
查看>>
MySql 自动更新时间为当前时间
查看>>
Configuring Aggregated Ethernet Interfaces
查看>>
我的友情链接
查看>>
我的友情链接
查看>>