laravel数据迁移

来源:互联网 发布:学术猫数据库 编辑:程序博客网 时间:2024/06/03 16:50

下面给大家介绍一下laravel最强大的功能数据迁移(database migrations)

在 database/migrations 目录中包含两个迁移文件,一个建立用户表,一个用于用户密码重置。

在迁移文件中,up 方法用于创建数据表,down方法用于回滚,也就是删除数据表。

首先先执行一下迁移

php artisan migrate
#输出
Migration table created successfully.

如果输出这个就表明执行成功。’

这时会生成migratoins表是迁移记录表

首先新建迁移php artisan make:migration create_article_table --create='articles';

执行成功会产生Created Migration: 2015_03_28_050138_create_article_table;

我们在 database/migrations 下生成了新的文件。

文件内容如下:

<?php
 
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
 
class CreateArticleTable extends Migration {
 
 /**
 * Run the migrations.
 *
 * @return void
 */
 publicfunction up()
 {
 Schema::create('articles',function(Blueprint$table)
 {
  $table->increments('id');
  $table->timestamps();
 });
 }
 
 /**
 * Reverse the migrations.
 *
 * @return void
 */
 publicfunction down()
 {
 Schema::drop('articles');
 }
 
}
自动添加了 id列,自动增长,timestamps() 会自动产生 created_at 和 updated_at 两个时间列。我们在根据需求添加字段
执行迁移:php artisan migrate
会在数据库产生创建的表
假设我们需要添加一个新的字段,你可以回滚,然后修改迁移文件,再次执行迁移,或者可以直接新建一个迁移文件
强制执行:
php artisan migrate --force

回滚迁移:php artisan migrate:rollback
创建新的迁移表:php artisan make:migration add_excerpt_to_articels_table --table='articles'
回滚所有的应用迁移,可重建数据库:
php artisan migrate:reset
php artisan migrate:refresh --seed


附:
可用的列类型
命令描述$table->bigIncrements('id');自增ID,类型为bigint$table->bigInteger('votes');等同于数据库中的BIGINT类型$table->binary('data');等同于数据库中的BLOB类型$table->boolean('confirmed');等同于数据库中的BOOLEAN类型$table->char('name', 4);等同于数据库中的CHAR类型$table->date('created_at');等同于数据库中的DATE类型$table->dateTime('created_at');等同于数据库中的DATETIME类型$table->decimal('amount', 5, 2);等同于数据库中的DECIMAL类型,带一个精度和范围$table->double('column', 15, 8);等同于数据库中的DOUBLE类型,带精度, 总共15位数字,小数点后8位.$table->enum('choices', ['foo', 'bar']);等同于数据库中的 ENUM类型$table->float('amount');等同于数据库中的 FLOAT 类型$table->increments('id');数据库主键自增ID$table->integer('votes');等同于数据库中的 INTEGER 类型$table->json('options');等同于数据库中的 JSON 类型$table->jsonb('options');等同于数据库中的 JSONB 类型$table->longText('description');等同于数据库中的 LONGTEXT 类型$table->mediumInteger('numbers');等同于数据库中的 MEDIUMINT类型$table->mediumText('description');等同于数据库中的 MEDIUMTEXT类型$table->morphs('taggable');添加一个 INTEGER类型的 taggable_id 列和一个 STRING类型的 taggable_type$table->nullableTimestamps();和 timestamps()一样但不允许 NULL值.$table->rememberToken();添加一个 remember_token 列: VARCHAR(100) NULL.$table->smallInteger('votes');等同于数据库中的 SMALLINT 类型$table->softDeletes();新增一个 deleted_at 列 用于软删除.$table->string('email');等同于数据库中的 VARCHAR 列  .$table->string('name', 100);等同于数据库中的 VARCHAR,带一个长度$table->text('description');等同于数据库中的 TEXT 类型$table->time('sunrise');等同于数据库中的 TIME类型$table->tinyInteger('numbers');等同于数据库中的 TINYINT 类型$table->timestamp('added_on');等同于数据库中的 TIMESTAMP 类型$table->timestamps();添加添加 created_at 和 updated_at列.修改列->first()将该列置为表中第一个列 (仅适用于MySQL)->after('column')将该列置于另一个列之后 (仅适用于MySQL)->nullable()允许该列的值为NULL->default($value)指定列的默认值->unsigned()设置 integer 列为 UNSIGNED



0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 ps中抠出的图边缘虚不圆滑怎么办 ps的文字工具多了圆框怎么办 苹果6s屏幕锁忘了密码怎么办 网上下载的3d模型渲染很慢怎么办 cad下载完成后出现闪退怎么办 婴儿在肚子里被系带绑到怎么办 我想给外地的朋友送花怎么办 英雄联盟连接不上聊天服务器怎么办 用黄金换玫瑰金后悔了怎么办 劳力士日志系列玫瑰金和黄金怎么办 香菇代进地注水后长满绿毛怎么办 群主给你带了不满意的头衘怎么办 普兰德雪地靴洗变色了怎么办 书被水泡了皱了黏了怎么办 书被水泡了皱了没干怎么办 眼皮干燥起皮起皱怎么办能治好吗 手指头起小水泡指甲不平整怎么办 这几天我的内裤上带点血丝怎么办 一个月宝宝私处捂白了怎么办 工资算了字签了老板没把钱怎么办 百合种球叶子都变黄了怎么办 新买的富贵竹叶子发黄怎么办水养 朋友总是以隐私为借口欺骗我怎么办 三星手机版本低下载不了微信怎么办 选了动漫制作技术但不会画画怎么办 做主播高薪可是心累不愿做了怎么办 pr导出的avi无压缩太大怎么办 捡了个小米max被绑定了怎么办 二十岁时头发开始掉了怎么办 在酒店换衣服忘记关窗帘了怎么办 淘宝店铺装修更改图片要收费怎么办 惠阳市教育考试考证号忘记怎么办 高考完被被骗去读自考以后怎么办 孩子学习遇到瓶颈期了老师该怎么办 微信家长群有不好的言论出现怎么办 铃木汽车后备箱电动锁没有电怎么办 坐飞机没有连号座位带孩子怎么办 白沙的衣服洗衣服时染上颜色怎么办 网购商家少发了货怎么办 我想成为安利的员工怎么办会员 安利皇后锅锅盖吸在桌子上怎么办