一、数据表的迁移(重点)
迁移:创建数据表的操作 + 删除数据表的操作。 填充:往数据表里填充写入测试的数据(数据的插入操作)。
1.1 数据的迁移操作
在迁移过程中,操作可以分为两个部分:创建与编写迁移文件、执行迁移文件。
1.1.2 迁移文件的创建与编写
迁移文件默认的位置:
1、创建迁移文件 例:需要创建试卷的数据表,假设数据表的名字叫做paper。迁移文件名:create_paper_table
在写之前含义如下: Schema门面(类)是用于操作数据表的门面,调用其具体的方法之后就可以实现创建数据表与删除数据表,语法如上。 实现试卷表paper的创建:
在创建数据表的列的时候遵循语法:
常用的列类型:
列类型 | 解释 | $table -> string('email') | 等同于数据库中的VARCHAR列 | $table -> string('name', 100) | 等同于数据库中的VARCHAR,带一个长度 | $table -> increments('id') | 数据库主键自增ID | $table -> tinyInteger('numbers') | 等同于数据库中的TINYINT类型 | $table -> integer('votes') | 等同于数据库中的INTEGER类型 | $table -> enum('choices', ['foo', 'bar']) | 等同于数据库中的ENUM类型 |
---|
创建数据表的迁移代码:
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePaperTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('paper', function (Blueprint $table) {
// id 表的主键、自增
$table->increments('id') -> comment('自增主键');
// paper_name 试卷名称,唯一,varchar(100),不为空
$table->string('paper_name', 100) -> comment('试卷名称') -> unique();
// Total_score 试卷总分,整型数字,tinyint,默认为100
$table->tinyInteger('total_score') -> comment('试卷总分') -> default(100);
//start_time 试卷开始考试时间,时间戳类型(整型int)
$table->integer('start_time') -> comment('考试开始时间');
// duration 考试时间长度,单位分钟,整型tinyint
$table->tinyInteger('duration') -> comment('考试时长');
// status 试卷是否启用状态:1、表示启用。2、表示禁用。默认为1,tinyint类型
$table->tinyInteger('status') -> comment('试卷启用状态') -> default(1);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('paper');
}
}
如下:
1.2 执行迁移文件
执行分为up执行和down执行。
1.2.1 up方法的执行:
作用:用于创建记录迁移文件的记录数据表(可以看作类似于svn的版本控制机制)。
需要执行up方法,则需要执行命令:(注意:需要删除系统自带的迁移文件,只保留自己的)php artisan migrate
1.2.2 Down 方法执行:
down方法执行:(回滚操作,删除数据表)
php artisan migrate:rollback
【回滚最后一次(批次号,针对的是批次号,不是单个表)的迁移操作,回滚操作不删除迁移文件】
回滚操作只删除迁移表中的记录和对应的数据表,其他操作不执行。
针对迁移文件名的提示:如果迁移文件已经创建好并且执行了,就不要去修改迁移文件的名称,容易出错的。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!