标签:add param 准备就绪 images timestamp 门面模式 extends 函数 table
artisan命令行创建migrate
格式:
| 1 | php artisan make:migration YourFileName |
示例:
| 1 | php artisan make:migration create_books_table |
我们找到laravel目录下database\migrations\2017_XX_XX_XXXXXX_create_books_table.php
注意:XX代表时间戳,因时而异
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
<?phpuse Illuminate\Database\Schema\Blueprint;use Illuminate\Database\Migrations\Migration;class CreateBooksTable extends Migration{ /** * Run the migrations. * * @return void */ public function up() { // } /** * Reverse the migrations. * * @return void */ public function down() { // }} |
这里的CreateBooksTable类继承了Migration,我们看下Migration类
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
namespace Illuminate\Database\Migrations;abstract class Migration{ /** * The name of the database connection to use. * * @var string */ protected $connection; /** * Get the migration connection name. * * @return string */ public function getConnection() { return $this->connection; }} |
这里我们把up函数改写成
|
1
2
3
4
5
6
7
8
9
10
11
|
public function up(){ Schema::create(‘chs‘, function (Blueprint $table) { $table->increments(‘id‘); $table->string(‘slug‘)->unique();//additional $table->string(‘title‘);//additional $table->text(‘content‘);//additional $table->timestamps(); $table->timestamp(‘published_at‘)->index();//additional });} |
同时参考以下文档,文档选自http://laravelbook.com/laravel-migrations-managing-databases/


一切准备就绪,我们开始迁移
| 1 | php artisan migrate |
如果你迁移后发觉并不是你想要的数据表,可以回滚
| 1 | php artisan migrate:rollback |
这里要给大家提个醒,down方法一定要写,可能有些人这个方法会空着,觉得只要数据表创建出来了就没事了,但是一旦涉及rollback又没有down方法,你的migrate操作就是不可逆的!
就像这样:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
<?phpuse Illuminate\Database\Schema\Blueprint;use Illuminate\Database\Migrations\Migration;class CreateCommentsTable extends Migration{ /** * Run the migrations. * * @return void */ public function up() { Schema::create(‘comments‘, function (Blueprint $table) { $table->increments(‘id‘); $table->integer(‘postid‘); $table->string(‘title‘);//additional $table->text(‘content‘);//additional //$table->timestamps(); $table->timestamp(‘published_at‘)->index();//additional }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::drop(‘comments‘); }} |
Laravel使用了门面模式
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
namespace Illuminate\Support\Facades;/** * @see \Illuminate\Database\Schema\Builder */class Schema extends Facade{ /** * Get a schema builder instance for a connection. * * @param string $name * @return \Illuminate\Database\Schema\Builder */ public static function connection($name) { return static::$app[‘db‘]->connection($name)->getSchemaBuilder(); } /** * Get a schema builder instance for the default connection. * * @return \Illuminate\Database\Schema\Builder */ protected static function getFacadeAccessor() { return static::$app[‘db‘]->connection()->getSchemaBuilder(); }} |
标签:add param 准备就绪 images timestamp 门面模式 extends 函数 table
原文地址:http://www.cnblogs.com/wuyuxin/p/7039669.html