一、数据库迁移

Laravel 的数据库迁移提供了对数据库、表、字段、索引的一系列相关操作。下面以创建友情链接表为例。

1. 创建迁移

使用 Artisan 命令  php artisan make:migration create_links_table

这样就在 database/migrations 目录下生成一个名为 2017_05_06_151645_create_links_table.php 文件。名字的前半段 "2017_05_06_151645_" 是 Laravel 增加的时间戳。后半段 "create_links_table.php" 是表名字。

2. 编写逻辑

然后,打开这个迁移类 2017_05_06_151645_create_links_table.php ,里面有两个方法: up() 和 down() 。up() 方法建表,down() 方法删表。

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration; class CreateLinksTable extends Migration
{
/**
* 执行迁移
*
* @return void
*/
public function up()
{
Schema::create('links', function (Blueprint $table){
$table->engine = 'MyISAM';
$table->increments('id');
$table->string('name')->default('')->comment('名称');
$table->string('title')->default('')->comment('标题');
$table->string('url')->default('')->comment('地址');
$table->integer('sort')->default(50)->comment('排序');
});
} /**
* 回滚迁移
*
* @return void
*/
public function down()
{
Schema::drop('links');
}
} 2017_05_06_151645_create_links_table.php

3. 执行迁移

使用 Artisan 命令  php artisan migrate

现在,数据库中已经创建了一张 hd_links 表 和 一张记录迁移的表 hd_migrations ("hd_" 是配置的表前缀):

注意:如果手动删除了迁移类并且文件无法重新创建,使用 composer dump-autoload 命令优化一下自动加载就可以重新创建迁移了。

二、数据填充

可用于测试,为数据库中的表填充一些数据。

1. 创建填充

使用 Artisan 命令   php artisan make:seeder LinksTableSeeder

这将在 database/seeds 目录下生成一个名为 LinksTableSeeder.php 的友情链接填充类。

2. 编写逻辑

然后,打开这个 LinksTableSeeder.php 文件,添加两条测试记录。

<?php

use Illuminate\Database\Seeder;

class LinksTableSeeder extends Seeder
{
/**
* 运行数据库填充
*
* @return void
*/
public function run()
{
$data = [
[
'name' => 'Laravel 中文社区',
'title' => 'Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 - Powered by PHPHub',
'url' => 'https://laravel-china.org/',
'sort' => '49'
],
[
'name' => 'GitHub',
'title' => 'GitHub is where people build software. More than 21 million people use...',
'url' => 'https://github.com',
'sort' => '49'
]
]; DB::table('links')->insert($data);
}
}

3. 调用填充

在 database/seeds 目录下的 DatabaseSeeder.php 这个数据库填充类中,在 run() 方法内调用填充。

DatabaseSeeder.php 文件内容:

<?php

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
/**
* 运行数据库填充
*
* @return void
*/
public function run()
{
$this->call(LinksTableSeeder::class);
}
}

4.执行填充

使用 Artisan 命令  php artisan db:seed

现在,数据库中的 hd_links 表就有了2条记录:

Laravel 5.2 数据库迁移和数据填充的更多相关文章

  1. Laravel 实践之路: 数据库迁移与数据填充

    数据库迁移实际上就是对数据库库表的结构变化做版本控制,之前对数据库库表结构做修改的方式比较原始,比如说对某张库表新增了一个字段,都是直接在库表中执行alter table xxx add .. 的方式 ...

  2. tp5 数据库迁移及数据填充

    1:首先通过 composer 安装    原命令加空格 1.* 2:创建 3:填入数据 4:运行,刷新数据库 数据填充: 1:在命令行输入以下命令 composer require fzaninot ...

  3. laravel中的数据迁移和数据填充

    laravel中的数据迁移和数据填充 标签(空格分隔): php 生成迁移文件两种方式: 1 新建一个表的迁移文件 php artisan make:migration create_students ...

  4. laravel模型建立和数据迁移和数据填充(数据填充没有成功)未完

    开始创建我们的第一个 Article 模型及其对应迁移文件了,我们在项目根目录运行如下 Artisan 命令一步到位: php artisan make:model Article -m -m 是 - ...

  5. Laravel 5.2数据库--迁移migration

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

  6. laravel中的数据库迁移

    1.创建数据库迁移文件:生成数据库迁移文件,前面跟着时间戳: php artisan make:migration create_posts_table 创建数据库迁移文件:可以重命名数据表名: -- ...

  7. Laravel 6.X 数据库迁移 创建表 与 修改表

    数据库迁移创建表 本篇文章中使用的是mysql数据库,其他数据库需要修改env文件和app配置,请其他地方搜索一下就会找到. 创建示例 1.创建users表: 命令行键入 php artisan ma ...

  8. laravel框架总结(十四) -- 数据迁移和数据填充

    一.数据迁移 1.创建一个迁移 1>使用artisan命令make:migration来创建一个新的迁移: php artisan make:migration create_sutdents_ ...

  9. Laravel 5.4 数据库迁移一次之后就不起作用!

    https://segmentfault.com/q/1010000010806351 我在命令行中生成了一个新的迁移脚本: 当我执行命令:php artisan migrate 时 显示迁移成功,并 ...

随机推荐

  1. Tomcat 设计模式分析

    门面设计模式 门面设计模式在 Tomcat 中有多处使用,在 Request 和 Response 对象封装中.Standard Wrapper 到 ServletConfig 封装中.Applica ...

  2. InnoDB高并发原理

    一.并发控制 为啥要进行并发控制? 并发的任务对同一个临界资源进行操作,如果不采取措施,可能导致不一致,故必须进行并发控制(Concurrency Control). 技术上,通常如何进行并发控制? ...

  3. 【EF】EF扩展库(批量操作)

    EF删除和修改数据只能先从数据库取出,然后再进行删除 delete from Table1 where Id>5; update Table1 set Age=10; 我们需要这样操作 //删除 ...

  4. 9.1、AutoEncoder自动编码器[转]

    如果给定一个神经网络,我们假设其输出与输入是相同的,然后训练调整其参数,得到每一层中的权重.自然地,我们就得到了输入I的几种不同表示(每一层代表一种表示),这些表示就是特征.自动编码器就是一种尽可能复 ...

  5. Oracle-RAC原理

    Oracle-RAC原理 来源 https://blog.csdn.net/qq_34556414/article/details/79001267 单点数据库 VS RAC 单节点数据库,如果实例宕 ...

  6. BZOJ1876:[SDOI2009]SuperGCD——C++高精度良心题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1876 Description Sheng bill有着惊人的心算能力,甚至能用大脑计算出两个巨大的数 ...

  7. React中的高阶组件,无状态组件,PureComponent

    1. 高阶组件 React中的高阶组件是一个函数,不是一个组件. 函数的入参有一个React组件和一些参数,返回值是一个包装后的React组件.相当于将输入的React组件进行了一些增强.React的 ...

  8. IOI2000 Post Office (POJ1160)

    前言 昨天XY讲课!讲到这题!还是IOI的题!不过据说00年的时候DP还不流行. 题面 http://poj.org/problem?id=1160 分析  § 1 中位数 首先我们考虑,若有x1 & ...

  9. ACE主动对象模式(2)

    转载于:http://www.cnblogs.com/TianFang/archive/2006/12/12/590153.html 我们简单的介绍了一下ACE主动对象实现方式,同时提出了两个问题: ...

  10. Apache Flume - File通道设计

    原文链接:https://blogs.apache.org/flume/entry/apache_flume_filechannel 说明:翻译在尽量符合原文表达的基础上,尽量保证行文流畅.水平有限, ...