# 数据迁移
数据迁移有以下好处:多人并行开发、代码版本管理、数据库版本控制、兼容多种数据库、部署方便。
# 生成迁移
php artisan make:migration create_users_table --path=database/migrations/users
# 整合迁移
php artisan schema:dump
# 转储当前数据库架构并删除所有现有迁移
php artisan schema:dump --prune
# 设置数据连接和表选项
下面只是罗列平常用到的,如弱深究,可以查看源码
// 添加连接属性
protected $connection = 'other_connection';
// 除了上面设置的属性,还可以使用以下方式
Schema::connection('sqlite')->create('users', function (Blueprint $table) {
// engine 属性指定表的存储引擎
$table->engine = 'InnoDB';
// 指定字符集
$table->charset = 'utf8mb4';
// 指定排序规则
$table->collation = 'utf8mb4_unicode_ci';
// 添加标注释
$table->comment('Business calculations');
$table->id();
// 外检约束
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
.
.
.
});
// Laravel 默认会自动将数据表名称、索引的字段名及索引类型简单地连接在一起作为名称。
// 删除 'geo_state_index' 索引
$table->dropIndex('geo_state_index');
$table->dropIndex(['state']);
$table->dropForeign('posts_user_id_foreign');
$table->dropForeign(['user_id']);
# 执行迁移
php artisan migrate
php artisan migrate:status
php artisan migrate:rollback
php artisan migrate:rollback --step=5
php artisan migrate:reset
php artisan migrate:refresh
php artisan migrate:refresh --seed