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对应记录,文章表中对应记录也删除),可以通过onDelete
和onUpdate
方法实现
$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
原文:https://www.cnblogs.com/bigcola/p/13369351.html