在 go 中使用 gorm 管理数据库迁移涉及以下步骤:安装 gorm 库。创建 migration 文件,其中包含应用于数据库的更改。运行 migrate 命令以应用迁移。具体来说,要添加一个名为 phone_number 的新列,可以创建一个新的 migration 文件并使用 gorm 的 model() 和 addcolumn() 方法来执行此更改。运行 migrate 命令后,对数据库的更改将会应用。
使用 GORM 进行 Go 应用程序的数据库迁移
在 Go 应用程序中,使用 GORM(一个流行的 ORM 库)管理数据库迁移是一个常见任务。迁移允许您以可控的方式对数据库架构进行更改,例如添加或删除表、列和约束。
第一步:安装 GORM
立即学习“go语言免费学习笔记(深入)”;
go get -u gorm.io/gorm
第二步:创建 migration 文件
migration 文件是使用 GORM 的 Migrate 命令应用迁移的 Go 结构体。创建一个新文件,例如 migrations/20230510_create_users_table.go:
package migrations import ( "<a style='color:#f60; text-decoration:underline;' href="https://www.codesou.cn/" target="_blank">git</a>hub.com/jinzhu/gorm" ) type CreateUsersTable struct { Column("id", "integer", "primary key") Column("name", "string") Column("email", "string", "unique") } func (m *CreateUsersTable) Up(db *gorm.DB) error { return db.CreateTable("users") } func (m *CreateUsersTable) Down(db *gorm.DB) error { return db.DropTable("users") }
第三步:运行迁移
可以使用 migrate 命令应用迁移:
gorm.AutoMigrate(&User{}) // 应用所有 migration 文件
实战案例:添加一个新列
要在现有的 users 表中添加一个新列 phone_number,请创建一个新的 migration 文件:
package migrations import ( "github.com/jinzhu/gorm" ) type AddPhoneNumberColumn struct { Column("phone_number", "string") } func (m *AddPhoneNumberColumn) Up(db *gorm.DB) error { return db.Model(&User{}).AddColumn("phone_number", "string") } func (m *AddPhoneNumberColumn) Down(db *gorm.DB) error { return db.Model(&User{}).DropColumn("phone_number") }
运行 migrate 命令后,对 users 表的更改将会应用。