goose数据库迁移工具介绍及使用流程步骤
Go  /  管理员 发布于 1年前   539
Goose 是一款数据库迁移工具,支持 SQL 迁移和 Go 函数。通过创建增量 SQL 变更或 Go 函数来管理数据库模式。
从 v3.0.0 开始,该项目增加了 Go 模块支持,但仍保持与旧版 v2.x.y 标签的向后兼容性。
Goose 支持嵌入 SQL 迁移,这意味着你需要 go1.16 及以上版本。如果使用 go1.15 或更低版本,则需要 v3.0.1。
git:
https://github.com/pressly/goose
在开发到发布的过程中,数据库的迁移是一件较为繁琐的事,而goose的出现,让数据库的迁移变得很轻松。
我们只需要简单的一句goose up 就能将数据库重新部署,一句goose down 就能将原有的数据库清除,是不是感觉很easy!
如果你想使用最新版本的Goose来指定只执行新创建的迁移文件而不执行其他文件,
可以按照以下步骤进行操作:
1.确保已经安装了最新版本的 Goose。
如果没有,请运行以下命令进行安装:
go get -u github.com/pressly/goose/cmd/goose
2.创建一个新的目录用于存放迁移文件:
mkdir migrations
3.在 migrations 目录中创建一个新的迁移文件。你可以使用以下命令创建一个示例迁移文件:
goose create create_users_table sql
这将在 migrations 目录中创建一个名为 YYYYMMDDHHMMSS_create_users_table.sql 的迁移文件。
4.打开迁移文件,并定义用于创建 users 表的 SQL 语句:
-- +goose Up
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(255),
email VARCHAR(255)
);
-- +goose Down
DROP TABLE users;
-- +goose Up 部分包含在迁移向上迁移时要执行的 SQL 语句,
-- +goose Down 部分包含在向下迁移时要执行的 SQL 语句。
5.使用以下命令指定只执行新创建的迁移文件进行迁移:
// 创建表
goose -dir migrations mysql "user:password@tcp(localhost:3306)/mydb?parseTime=true" up YYYYMMDDHHMMSS_create_users_table.sql
// 删除表 回滚
goose -dir migrations mysql "user:password@tcp(localhost:3306)/mydb?parseTime=true" down YYYYMMDDHHMMSS_create_users_table.sql
ps:
这将只应用指定的迁移文件,并在指定的 MySQL 数据库中创建 users 表。
最后
请确保在 goose 命令中更新连接字符串,将其替换为你的 MySQL 数据库凭据和连接详细信息,并指定要执行的迁移文件的名称。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号