php-fafad

数据表的迁移与填充

迁移:创建数据表的操作+删除数据表的操作
填充:往数据表里填充写入测试的数据(数据的插入操作)

1、数据的迁移操作

在迁移过程中,操作可以分为两个部分:创建与编写迁移文件、执行迁移文件。

1.1、迁移文件的创建与编写

迁移文件默认的位置:
在这里插入图片描述

已经存在的2个文件,如果不打算使用系统自带的认证模块的话需要删除掉。

①创建迁移文件
案例:需要创建试卷的数据表,假设数据表的名字叫做paper。迁移文件名:create_paper_table
创建的时候可以通过自动代码生成工具artisan命令来执行迁移文件的生成。

#php artisan make:migration 迁移文件名 Create a new migration file 迁移文件不需要分目录进行管理,可以直接书写名称即可。

#php artisan make:migration create_paper_table
在这里插入图片描述在这里插入图片描述
初始代码:
在这里插入图片描述

Up方法表示创建数据表的方法
Down方法表示删除数据表的方法

②编写迁移文件代码,让其能够实现数据表的创建(up方法)与删除(down方法)
在写之前,可以参考项目初始化提供的user迁移文件:

在这里插入图片描述在这里插入图片描述

Schema门面(类)是用于操作数据表的门面,调用其具体的方法之后就可以实现创建数据表与删除数据表,语法如上。照搬上述语法实现试卷表paper的创建:
试卷表的字段分析:
Id 表的主键,自增
Paper_name 试卷名称,唯一,varchar(100),不为空
Total_score 试卷总分,整型数字,tinyint,默认为100
Start_time 试卷开始考试时间,时间戳类型(整型int)
Duration 考试时间长度,单位分钟,整型tinyint
Status 试卷是否启用的状态,1表示启用,2表示禁用,默认为1,tinyint类型
在创建数据表的列的时候遵循语法:

$table 表示整个表的实例
语法:$table -> 列类型方法(字段名,[长度/值范围]) -> 列修饰方法([修饰的值]);
  • 1
  • 2

列类型方法的作用:指定列的名称并且设置列的类型长度或者其值范围(仅针对枚举类型)
修饰方法:主要是补充列的一些特征,例如有些列不能为空,或者有默认值等等
常见的修饰方法有:
在这里插入图片描述

常用的列类型:

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

创建数据表的迁移代码:
在这里插入图片描述

删除数据表的迁移代码:
在这里插入图片描述

1.2、执行迁移文件

执行分为up执行和down执行。

Up方法的执行:
如果在当前的项目中第一次执行迁移文件的话,则需要先去执行:

#php artisan migrate:install

在执行过上述的命令之后,在数据表中会多出一个数据表,migrations
在这里插入图片描述

作用:用于创建记录迁移文件的记录数据表。
需要执行up方法,则需要执行命令:(注意:需要删除系统自带的迁移文件,只保留自己的)
在这里插入图片描述

#php artisan migrate 【执行迁移文件的:创建数据表】

在这里插入图片描述
Down方法执行:(回滚操作,删除数据表)

#php artisan migrate:rollback 【回滚最后一次的迁移操作,回滚操作不删除迁移文件】

在这里插入图片描述在这里插入图片描述

回滚操作只删除迁移表中的记录和对应的数据表,其他操作不执行。

注意:删除(回滚)之后会删除上一个批次的迁移记录,并且同批次建立的数据表也会删除,但是迁移文件依旧存在,方便后期继续迁移(创建数据表)。

批次号:同一次被执行的多个迁移文件其批次号相同。

针对迁移文件名的提示:如果迁移文件已经创建好并且执行了,就不要去修改迁移文件的名称,容易出错的。

2、数据表填充器

填充操作就是往数据表中写测试数据的操作(增加操作)。

2.1、填充器(种子文件)的创建与编写

①填充器默认的所在目录
在这里插入图片描述

②创建填充器

#php artisan make:seeder 填充器名称 【约定俗成的写法:大写表名+TableSeeder】

例如:以paper表为例,则名称应该为PaperTableSeeder

#php artisan make:seeder PaperTableSeeder

创建好的种子文件:
在这里插入图片描述在这里插入图片描述在这里插入图片描述

③【重点】编写填充器的代码,实现往数据表中写入数据
注意:在填充器文件中可以使用DB门面去新增数据,但是需要注意,DB门面在使用的时候不需要用户自己引入,一旦引入则报错,可以直接使用。建议使用DB门面方法写入新的数据

在这里插入图片描述

2.2、执行填充器文件

命令:

#php artisan db:seed --class=需要执行的种子文件名(不带.php)

种子文件不像迁移文件,迁移操作有单独的对应关系表去记录,由于种子文件的执行没有任何的记录,所以在执行种子文件的时候需要指定需要执行的种子文件。

#php artisan db:seed --class=PaperTableSeeder

在这里插入图片描述

如果没任何提示则说明其执行成功。

执行之后数据表中的对应的数据就存在:

在这里插入图片描述

填充器的执行操作没有回滚一说,没有删除。如果需要回滚,则可以手动清空对应的数据表。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
非常感谢您使用我们的花香校园网页生成器,以下是您的网页: ``` <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>花香校园</title> <style> body { background-color: #F5DEB3; font-family: Arial, sans-serif; color: #333; margin: 0; padding: 0; } header { background-color: #FFEBCD; padding: 20px; text-align: center; font-size: 36px; } nav { background-color: #FFDAB9; padding: 10px; text-align: center; font-size: 20px; margin-bottom: 20px; } nav ul { list-style-type: none; margin: 0; padding: 0; display: flex; justify-content: center; } nav li { margin-right: 20px; } nav a { color: #333; text-decoration: none; } section { margin: 0 auto; padding: 20px; max-width: 800px; display: flex; flex-wrap: wrap; justify-content: space-between; } article { background-color: #FAFAD2; margin-bottom: 20px; padding: 20px; flex-basis: calc(33.33% - 20px); box-sizing: border-box; } h2 { font-size: 24px; margin-top: 0; } p { font-size: 16px; line-height: 1.5; } img { max-width: 100%; height: auto; margin-bottom: 10px; } footer { background-color: #FFDAB9; padding: 20px; text-align: center; font-size: 16px; } </style> </head> <body> <header>花香校园</header> <nav> <ul> <li><a href="#">关于我们</a></li> <li><a href="#">新闻动态</a></li> <li><a href="#">招生信息</a></li> <li><a href="#">联系我们</a></li> </ul> </nav> <section> <article> <img src="https://picsum.photos/400/300?random=1" alt="花香校园"> <h2>欢迎来到花香校园</h2> <p>花香校园是一所拥有百年历史的学校,我们致力于为学生提供最优质的教育,让学生在一个充满花香和文化氛围的校园里学习成长。</p> </article> <article> <img src="https://picsum.photos/400/300?random=2" alt="教学设施"> <h2>优秀的教学设施</h2> <p>我们拥有最先进的教学设施,包括多媒体教室、实验室、图书馆等,为学生提供最好的学习环境。</p> </article> <article> <img src="https://picsum.photos/400/300?random=3" alt="校园文化"> <h2>浓厚的校园文化</h2> <p>花香校园注重培养学生的文化素养,我们举办各种文化活动,如书法比赛、诗歌朗诵会等,让学生在活动中感受到浓厚的校园文化。</p> </article> <article> <img src="https://picsum.photos/400/300?random=4" alt="师资力量"> <h2>优秀的师资力量</h2> <p>我们拥有一支优秀的师资队伍,他们都是经验丰富、敬业爱生的教师,能够为学生提供最好的教育。</p> </article> <article> <img src="https://picsum.photos/400/300?random=5" alt="校园生活"> <h2>丰富多彩的校园生活</h2> <p>花香校园注重学生的全面发展,我们举办各种活动,如运动会、文艺晚会、志愿服务等,让学生在校园生活中得到充分的锻炼和发展。</p> </article> <article> <img src="https://picsum.photos/400/300?random=6" alt="合作交流"> <h2>广泛的合作交流</h2> <p>我们积极开展校际合作,与国内外多所高校进行交流,为学生提供更广阔的发展空间。</p> </article> </section> <footer>© 2021 花香校园</footer> </body> </html> ``` 该网页具有花香校园特色的颜色和排版,包括一个简单的导航栏、一个页面标题和六个内容区域。每个内容区域都包括一张图片、一个标题和一段描述文字。希望您喜欢这个网页,如有需要,随时可以联系我进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值