Laravel通过迁移文件定义数据表结构

定义迁移

创建迁移文件

laravel提供了一个Artisan命令make:migration帮助我们快速生成数据库迁移文件。

--create=用于指定要创建的数据表名称

--table=用户置顶要修改的数据表名称

php artisan make:migration create_users_table --create=users #创建数据表迁移 并指定表名
php artisan make:migration alter_users_add_nickname --table=users #更新数据表迁移

创建数据表

数据库迁移操作都是基于Schema门面完成的,创建数据表需要调用他的create方法

public function up()
{
	Schema::create('表名',function(Blueprint $table){
	
	});
}

修改表

是通过Schema门面上的table方法来修改数据表结构

public function up()
{
    Schema::table('users', function (Blueprint $table) {
        $table->string('nickname', 100)->after('name')->nullable()->comment('用户昵称');
    });
}

迁移类的down方法的操作和up方法操作正好相反

public function down()
{
	Schema::table('users',function(Blueprint $table){
		$table->dropColumn('nickname');
	})
}

修改表字段

修改字段长度 可以定义完属性后调用change方法执行变更

$table->strting('nickname',50)->change();

重命名某个字段 调用renameColumn

$table->renameColumn('name','username');

设置索引和外键

添加索引

$table->primary('id');	 //主键
$table->unique('name');		//唯一索引
$table->index('email');		//普通索引

参数支持传入数组。

$table->index(['name', 'email']);

移除索引

$table->dropIndex('name');
$table->dropUnique('email');
$table->dropPrimary('id');

添加、移除外键

$table->foreign('user_id')->references('id')->on('users');

指定外键约束(级联删除和更新,删除users表中的某个id对应记录,文章表中对应记录也删除),可以通过onDeleteonUpdate方法实现

$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
$table->foreign('user_id')->references('id')->on('users')->onUpdate('cascade');

通过dropForeign

$table->dropForeign(['user_id']);

通过完整的外键索引名称删除:

$table->dropForeign('posts_user_id_foreign');

运行迁移

php artisan migrate

回滚最后一个迁移文件的变更:

php artisan migrate:rollback

回滚多个迁移文件变更 --step=指定步数

php artisan migrate:rollback --step=5

回滚所有迁移

php artisan migrate:reset

猜你喜欢

转载自www.cnblogs.com/bigcola/p/13369351.html