laravel数据迁移

简介: laravel数据迁移

数据迁移

迁移就像是数据库的版本控制, 允许团队简单轻松的编辑并共享应用的数据库表结构,迁移通常和 Laravel 的 数据库结构生成器配合使用,让你轻松地构建数据库结构。如果你曾经试过让同事手动在数据库结构中添加字段,那么数据库迁移可以让你不再需要做这样的事情。

生成迁移

php artisan make:migration create_users_table

新的迁移位于database/migrations目录下。每个迁移文件名都包含时间戳,以便让 Laravel 确认迁移的顺序。

--table--create选项可用来指定数据表的名称,或是该迁移被执行时是否将创建的新数据表。这些选项需在预生成迁移文件时填入指定的数据表:

php artisan make:migration create_users_table --create=users
php artisan make:migration add_votes_to_users_table --table=users

运行迁移

php artisan migrate

在生产环境强制执行迁移

一些迁移操作是具有破坏性的, 这意味着可能会导致数据丢失。 为了防止有人在生产环境中运行这些命令, 系统会在这些命令被运行之前与你进行确认。如果要强制忽略系统的提示运行命令, 则可以使用--force标记:

php artisan migrate --force

回滚迁移

若要回滚最后一次迁移, 可以使用rollback命令。 此命令将回滚最后一次“迁移”的操作,其中可能包含多个迁移文件:

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
// Refresh the database and run all database seeds...
php artisan migrate:refresh --seed

使用refresh命令并提供step参数来回滚并再执行最后指定的迁移数。例如, 以下命令将回滚并重新执行最后五次迁移:

php artisan migrate:refresh --step=5

删除所有表 & 迁移

php artisan migrate:fresh
php artisan migrate:fresh --seed


目录
相关文章
|
30天前
|
安全 数据库 数据安全/隐私保护
数据库 变更和版本控制管理工具 --Bytebase 安装部署
数据库 变更和版本控制管理工具 --Bytebase 安装部署
41 0
|
3月前
|
NoSQL 关系型数据库 MySQL
|
5月前
|
SQL Oracle 关系型数据库
多环境数据同步(Navicat工具)
多环境数据同步(Navicat工具)
147 0
|
11月前
|
SQL 小程序 PHP
laravel5.8(三)数据库相关操作及配置
数据库相关的操作,大概看下laravel封装的增删改查的数据库操作方法以及laravel对原生sql的支持。 一:执行原生sql 1:查询select php 复制代码 $results = DB::select('select * from users where id = ‘{$id}’'); 2:写入 php 复制代码 $result = DB::insert('insert into users (id, name) values (‘{$id}’, ‘{$name}’)'); 3:修改,该方法返回受更新语句影响的行数:
105 1
|
11月前
|
小程序 关系型数据库 数据库连接
laravel5.8(十一)配置使用多数据库
有的时候,我们在开发的过程中需要连接多个数据库。 Laravel框架中早已为我们想到了这样的需求。 配置很简单。 在根目录下的/config/database.php文件中配置: Laravel中为我们提前预设了多种类型的数据库连接
60 0
|
NoSQL 测试技术 API
Eolink Apikit 版本更新:「数据字典」功能上线、支持 MongoDB 数据库操作...
Eolink Apikit 版本更新: 1. 搭建自定义接口协议架构,支持快速适配金融行业各类型私有协议的导入、编辑和展示。 2. 数据字典功能上线,支持以数据字典的形式管理参数枚举值。 3. 数据库连接支持 MongoDB 数据库操作。 4. 基于 Apikit 类型导入 API 数据支持增量更新。
83 0
|
关系型数据库 MySQL 数据库
Django迁移数据库报错你遇到了吗?
最新版本创建应用后,迁移数据库报错怎么办?
|
SQL 关系型数据库 数据库
Rails 数据库最佳实践
Rails 数据库最佳实践
|
SQL 关系型数据库 MySQL
django迁移了数据库
我们定义好model,执行两个命令Django 就帮我们迁移了数据库。这是因为我们使用了 Python 内置的 SQLite3 数据库。
123 0
|
消息中间件 缓存 NoSQL
Django开发-优化数据库实战解决方案(异步高效处理)
Django开发-优化数据库实战解决方案(异步高效处理)
195 0