如何详细改写Laravel中数据库迁移操作的示例以形成长尾关键词?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2840个文字,预计阅读时间需要12分钟。
目录一:创建迁移二:迁移结构
1:up方法
2:down方法
三:执行迁移四:迁移回滚五:回滚后迁移六:可用字段类型七:字段修饰八:修改字段九:删除字段十:索引长度MySQL目录
- 一:创建迁移
- 二:迁移结构
- 1:up方法
- 2:down方法
- 三:运行迁移
- 四:迁移回滚
- 五:回滚后迁移
- 六:可用字段类型
- 七:字段修饰
- 八:修改字段
- 九:删除字段
- 十:索引长度 & Mysql / MariaDB
- 十一:外键约束
一:创建迁移
在laravel中使用make:migration命令来创建迁移
php artisan make:migration create_user_table
执行上面的命令后这时候会在database/migrations 目录下生成对应的迁移文件,每个迁移的文件名都包含一个时间戳来让 Laravel 确认迁移的顺序
二:迁移结构
一个迁移类包含两个方法: up 和 down。up 方法是用于新增数据库的数据表、字段或者索引的,而 down 方法应该与 up 方法的执行操作相反。
1:up方法
public function up() { Schema::create('user', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); }
2:down方法
public function down() { Schema::dropIfExists('user'); }
三:运行迁移
php artisan migrate
大多数迁移操作都是破坏性的,这意味着也许会丢失数据。为了防止有人在生产环境数据中运行这些命令,在执行这些命令之前将提示你进行确认。如果要强制迁移命令在没有提示的情况下运行,请使用 --force 参数
php artisan migrate --force
四:迁移回滚
php artisan migrate:rollback
通过向 rollback 命令加上 step 参数,可以回滚指定数量的迁移
php artisan migrate:rollback --step=5
migrate:reset 命令将会滚回你应用程序所有的迁移:
php artisan migrate:reset
五:回滚后迁移
migrate:refresh 命令将会在回滚你所有的迁移后执行 migrate 命令。这个命令可以高效的重新创建你的整个数据库:
php artisan migrate:refresh // 刷新数据库并执行数据库填充 php artisan migrate:refresh --seed
六:可用字段类型
在laravel的数据库迁移中,支持的字段类型有:
七:字段修饰
在laravel的数据库迁移中,支持的字段修饰符有:
实例:
Schema::table('users', function (Blueprint $table) { $table->string('email')->nullable(); });
八:修改字段
change 方法可以将现有的字段类型修改为新的类型或修改属性,例:
Schema::table('users', function (Blueprint $table) { $table->string('name', 50)->change(); });
renameColumn方法来重命名字段,依赖于doctrine/dbal拓展,例:
Schema::table('users', function (Blueprint $table) { $table->renameColumn('from', 'to'); });
九:删除字段
dropColumn 方法来删除字段,例:
Schema::table('users', function (Blueprint $table) { $table->dropColumn(['votes', 'avatar', 'location']);//删除votes,avatar,location字段 });
十:索引长度 & Mysql / MariaDB
Laravel 默认使用 utf8mb4 编码,它支持在数据库中储存 emojis 。如果你是在版本低于 5.7.7 的 MySQL 或者版本低于 10.2.2 的 MariaDB 上创建索引,那你就需要手动配置数据库迁移的默认字符串长度。即在 app/Providers/AppServiceProvider 中调用 Schema::defaultStringLength 方法来配置它
use Illuminate\Support\Facades\Schema; /** * Bootstrap any application services. * * @return void */ public function boot() { Schema::defaultStringLength(191); }
十一:外键约束
Laravel 还支持创建用于在数据库层中的强制引用完整性的外键约束。例如,让我们在 posts 表上定义一个引用 users 表的 id 字段的 user_id 字段:
Schema::table('posts', function (Blueprint $table) { $table->unsignedBigInteger('user_id'); $table->foreign('user_id')->references('id')->on('users'); });
在迁移文件中使用以下方法来开启或关闭外键约束
Schema::enableForeignKeyConstraints(); Schema::disableForeignKeyConstraints();
到此这篇关于Laravel中数据库迁移操作的示例详解的文章就介绍到这了,更多相关Laravel数据库迁移内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!
本文共计2840个文字,预计阅读时间需要12分钟。
目录一:创建迁移二:迁移结构
1:up方法
2:down方法
三:执行迁移四:迁移回滚五:回滚后迁移六:可用字段类型七:字段修饰八:修改字段九:删除字段十:索引长度MySQL目录
- 一:创建迁移
- 二:迁移结构
- 1:up方法
- 2:down方法
- 三:运行迁移
- 四:迁移回滚
- 五:回滚后迁移
- 六:可用字段类型
- 七:字段修饰
- 八:修改字段
- 九:删除字段
- 十:索引长度 & Mysql / MariaDB
- 十一:外键约束
一:创建迁移
在laravel中使用make:migration命令来创建迁移
php artisan make:migration create_user_table
执行上面的命令后这时候会在database/migrations 目录下生成对应的迁移文件,每个迁移的文件名都包含一个时间戳来让 Laravel 确认迁移的顺序
二:迁移结构
一个迁移类包含两个方法: up 和 down。up 方法是用于新增数据库的数据表、字段或者索引的,而 down 方法应该与 up 方法的执行操作相反。
1:up方法
public function up() { Schema::create('user', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); }); }
2:down方法
public function down() { Schema::dropIfExists('user'); }
三:运行迁移
php artisan migrate
大多数迁移操作都是破坏性的,这意味着也许会丢失数据。为了防止有人在生产环境数据中运行这些命令,在执行这些命令之前将提示你进行确认。如果要强制迁移命令在没有提示的情况下运行,请使用 --force 参数
php artisan migrate --force
四:迁移回滚
php artisan migrate:rollback
通过向 rollback 命令加上 step 参数,可以回滚指定数量的迁移
php artisan migrate:rollback --step=5
migrate:reset 命令将会滚回你应用程序所有的迁移:
php artisan migrate:reset
五:回滚后迁移
migrate:refresh 命令将会在回滚你所有的迁移后执行 migrate 命令。这个命令可以高效的重新创建你的整个数据库:
php artisan migrate:refresh // 刷新数据库并执行数据库填充 php artisan migrate:refresh --seed
六:可用字段类型
在laravel的数据库迁移中,支持的字段类型有:
七:字段修饰
在laravel的数据库迁移中,支持的字段修饰符有:
实例:
Schema::table('users', function (Blueprint $table) { $table->string('email')->nullable(); });
八:修改字段
change 方法可以将现有的字段类型修改为新的类型或修改属性,例:
Schema::table('users', function (Blueprint $table) { $table->string('name', 50)->change(); });
renameColumn方法来重命名字段,依赖于doctrine/dbal拓展,例:
Schema::table('users', function (Blueprint $table) { $table->renameColumn('from', 'to'); });
九:删除字段
dropColumn 方法来删除字段,例:
Schema::table('users', function (Blueprint $table) { $table->dropColumn(['votes', 'avatar', 'location']);//删除votes,avatar,location字段 });
十:索引长度 & Mysql / MariaDB
Laravel 默认使用 utf8mb4 编码,它支持在数据库中储存 emojis 。如果你是在版本低于 5.7.7 的 MySQL 或者版本低于 10.2.2 的 MariaDB 上创建索引,那你就需要手动配置数据库迁移的默认字符串长度。即在 app/Providers/AppServiceProvider 中调用 Schema::defaultStringLength 方法来配置它
use Illuminate\Support\Facades\Schema; /** * Bootstrap any application services. * * @return void */ public function boot() { Schema::defaultStringLength(191); }
十一:外键约束
Laravel 还支持创建用于在数据库层中的强制引用完整性的外键约束。例如,让我们在 posts 表上定义一个引用 users 表的 id 字段的 user_id 字段:
Schema::table('posts', function (Blueprint $table) { $table->unsignedBigInteger('user_id'); $table->foreign('user_id')->references('id')->on('users'); });
在迁移文件中使用以下方法来开启或关闭外键约束
Schema::enableForeignKeyConstraints(); Schema::disableForeignKeyConstraints();
到此这篇关于Laravel中数据库迁移操作的示例详解的文章就介绍到这了,更多相关Laravel数据库迁移内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

