Laravel 5.2 数据库迁移和数据填充

一、数据库迁移

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 增加的时间戳。

2. 编写逻辑

为迁移类的 up() 和 down() 方法编写操作数据表的代码。

2017_05_06_151645_create_links_table.php 文件内容:

<?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 命令优化一下自动加载就可以重新 make:migration 了。

二、数据填充

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

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条记录:

时间: 2024-10-29 19:05:57

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

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

laravel中的数据迁移和数据填充 标签(空格分隔): php 生成迁移文件两种方式: 1 新建一个表的迁移文件 php artisan make:migration create_students_table --create=students 2 创建模型的时候同时创建迁移文件 php artisan make:model Model\Article -m 创建迁移文件和执行 1 在 up 方法里完成数据表字段的创建 2 执行命令 php artisan migrate 生成填充文件 ph

laravel框架之数据迁移和数据填充

一.数据迁移 1.创建一个迁移 1>使用artisan命令make:migration来创建一个新的迁移: php artisan make:migration create_sutdents_table 新的迁移位于database/migrations目录下,每个迁移文件名都包含时间戳从而允许Laravel判断其顺序. 2>其他一些选项 --table用来指定表名 php artisan make:migration create_students_table --table=studen

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

开始创建我们的第一个 Article 模型及其对应迁移文件了,我们在项目根目录运行如下 Artisan 命令一步到位: php artisan make:model Article -m -m 是 --migration 的缩写,告知 Artisan 在创建模型同时创建与之对应的迁移文件(我使用的是 Laradock 作为开发环境): 当然,还需要编辑默认生成的迁移文件: use Illuminate\Support\Facades\Schema; use Illuminate\Database

laravel数据库迁移(三)

laravel号称世界上最好的框架,数据库迁移算上一个,在这里先简单入个门: laravel很强大,它把表中的操作写成了migrations迁移文件,然后可以直接通过迁移文件来操作表.所以 , 数据迁移文件就是 操作表的语句文件 操作表的语句文件为什么用迁移文件 , 而不直接敲 sql 操作表 ?1.  便于团队统一操作表.2.  出了问题,容易追查问题和回溯,有历史回退功能. 先创建一个库: 配置一下文件,修改.env中的参数 cmd.exe命令行输入如下命令创建一个表的迁移文件:php ar

laravel 数据库迁移报错解决

创建数据迁移 使用 Artisan 命令行的 migrate:make 命令创建一个迁移:(在命令行模式下使用) php artisan migrate:make create_users_table 所有的迁移都被存放在 app/database/migrations 文件夹下,文件以时间戳命名以方便Laravel框架按时间来界定这些文件顺序. 您可以在创建迁移的时候使用 --path 选项,用来指定迁移文件存放的路径.该路径是你安装框架根目录的相对路径: php artisan migrat

[Doctrine Migrations] 数据库迁移组件的深入解析三:自定义数据字段类型

自定义type 根据官方文档,新建TinyIntType类,集成Type,并重写getName,getSqlDeclaration,convertToPHPValue,getBindingType等方法. TinyIntType.php完整代码: <?php namespace db\types; use Doctrine\DBAL\ParameterType; use Doctrine\DBAL\Platforms\AbstractPlatform; use Doctrine\DBAL\Typ

Laravel中如何做数据库迁移

总的来说,做一次独立数据库迁移只需要三步,分别是创建迁移文件.修改迁移文件.运行迁移 1.创建数据库迁移文件php artisan make:migration create_articles_table1然后在database/migrations 目录下就会多出一个迁移文件,不过Laravel会在前面自动加上时间戳,来判断执行顺序 然后命令后面可以加上–table 或者 –create 来指定迁移文件对应的表名或者是新建一个数据表 php artisan make:migration cre

DB2数据库迁移数据到Oracle数据库

刚到公司后,领导交给我个任务:把DB2数据库中的数据导入到Oracle数据库,本人尝试以下方法,挺快的.还要导入db2jcc.jar.db2jcc_license_cu.jar.ojdbc14.jar三个相应的jar包. 数据迁移:1.在DB2数据库中通过以下表查询出表的结构SELECTTABNAME TAB, --表英文名称COLNAME COL, --列名称CASE WHEN TYPENAME='VARCHAR' THEN 'VARCHAR2'WHEN TYPENAME LIKE 'SMAL

读取数据库数据填充到缓存的问题,及修复方案一则

业务简述: 为了提高站点性能,部署了一台Redis,把资源从SqlServer数据库中同步到Redis,站点由原来的读取数据库,变更为读取Redis,以利用Redis的高并发提升站点性能目的. 环境说明: 1.假设表名为softs, 记录的更新时间字段名为 updateTime: 2.不考虑数据库的DELETE操作,只考虑INSERT和UPDATE操作: 3.流程中所有时间,都以数据库时间为准,以避免不同服务器之间的时间误差,导致数据遗漏. 4.重要的前提条件:数据库执行INSERT和UPDAT