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 增加的时间戳。后半段 "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 实践之路: 数据库迁移与数据填充
- Laravel 5.2 教程 - 数据填充
- laravel5.2总结--数据填充
- Laravel 5数据库 数据库迁移案例2——创建数据结构,数据表,修改数据结构
- Laravel 5.2 教程 - 数据填充
- laravel 数据迁移与填充的应用总结
- Laravel中数据迁移与数据填充的详细步骤
- [李景山php]每天laravel[034]-laravel 基础知识 --- 数据迁移及填充
- Laravel4.1数据库 数据库迁移案例2——创建数据结构,数据表,修改数据结构(五)
- Laravel数据库迁移和填充(支持中文)
- Laravel框架数据迁移和填充
- php Laravel框架学习(一) 之 建立数据库并填充测试数据
- laravel框架数据迁移、填充(简单示例)--学习笔记
- Laravel实现数据库迁移与支持中文的填充
- Laravel5.2之Seeder填充数据小技巧
- Laravel学习笔记(五)数据库 数据库迁移案例2——创建数据结构,数据表,修改数据结构
- Rman数据迁移至ASM数据库
- 把一个数据库中的一个表数据迁移到另一个数据库的相同结构的表中
- XX数据库数据文件迁移并作双机冷互备方案
- 将数据(数据库对象 和 表中数据)从 mysql 迁移到sql server 的实际样例