Laravel's database migration provides a series of related operations on databases, tables, fields, and indexes. The following takes creating a friendly link table as an example.
Use Artisan command php artisan make:migration create_links_table
This will generate a file named # in the database/migrations directory ##2017_05_06_151645_create_links_table.php file. The first half of the name "2017_05_06_151645_" is the timestamp added by Laravel. The second half of "create_links_table.php" is the table name.
2. Write logicThen, open the migration class2017_05_06_151645_create_links_table.php. There are two methods in it: up() and down(). The up() method creates a table, and the down() method deletes the table.
<?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
php artisan migrate
Now, the database has been created A hd_links table and a table hd_migrations recording migrations ("hd_" is the configured table prefix):Note: If the migration class is manually deleted And the file cannot be re-created. Use the composer dump-autoload command to optimize the automatic loading and the migration can be re-created.
2. Data filling can be used for testing to fill in some data for the tables in the database. 1. Create the fillUse the Artisan commandphp artisan make:seeder LinksTableSeeder
This will generate a file named # in the database/seeds directory The friendly link filling class of ##LinksTableSeeder.php. 2. Write logic
file and add two test records.
<?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); } }
DatabaseSeeder.php file content:
<?php use Illuminate\Database\Seeder; class DatabaseSeeder extends Seeder { /** * 运行数据库填充 * * @return void */ public function run() { $this->call(LinksTableSeeder::class); } }
Now, the hd_links table in the database has 2 records:
The above is the detailed content of Examples of database migration and data filling in Laravel5.2. For more information, please follow other related articles on the PHP Chinese website!