Beego数据库的迁移方法

397 阅读2分钟

数据库包的驱动

使用Git Bash首先安装Go的数据库/sql包的驱动。逐一运行下面两个命令,安装MySQL和Postgresql的驱动程序

  • 1.去获取github.com/lib/pq
  • 2. 去获取 -u github.com/go-sql-driver/mysql

创建Goblog数据库

  • 1.打开PHPMyAdmin/SQLyog或你正在使用的任何MySQL数据库管理工具。
  • 2.创建一个新的数据库 "goblog"

注意:准备好你的数据库用户名和密码;确保它必须与你系统中的用户名和密码相匹配。

迁移命令

当你创建一个迁移文件时,Beego会把它存放在[/database/migrations]目录下。首先,你需要在beego设置中创建数据库,然后创建相应的migrations文件夹。beego migrations directory

根据你的操作系统,打开命令提示符或终端 在本教程中,我们使用的是windows。

1.运行下面的命令,浏览到命令提示符。

cd C:\Goweb\src\blog

2.2. 运行下面的bee命令,在Goblog数据库中创建一个迁移表。

bee migrate -driver=mysql -conn="root:root@tcp(127.0.0.1:3306)/goblog"

注:主机: "127.0.0.1"; 用户名: "root"; 密码: "root"; 端口: "3306"; 数据库: "goblog"

你会得到以下信息
beego migrations

现在检查你的数据库,你会得到新的表 "migrations"。
beego migrations directory

3.运行下面的命令来创建一个迁移文件

bee generate migration user_table

你将会得到以下信息
beego migrations

现在你可以检查创建的迁移文件的内容了 打开该文件
beego migrations

现在我们已经成功地更新了迁移文件,我们将在迁移中添加表的定义字段。
修改/database/migrations/20171125_182446_user_table.go的内容

例子

package main

import (
	"github.com/astaxie/beego/migration"
)

// DO NOT MODIFY
type UserTable_20171125_182446 struct {
	migration.Migration
}

// DO NOT MODIFY
func init() {
	m := &UserTable_20171125_182446{}
	m.Created = "20171125_182446"
	migration.Register("UserTable_20171125_182446", m)
}

// Run the migrations
func (m *UserTable_20171125_182446) Up() {
	m.SQL("CREATE TABLE user(id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(255), password VARCHAR(255), email VARCHAR(255))")
}

// Reverse the migrations
func (m *UserTable_20171125_182446) Down() {
	m.SQL("DROP TABLE user")
}
  • func up()定义了迁移运行时执行的函数。
  • func down()定义了在运行迁移回滚时执行的函数

4.运行下面的命令来迁移更新的迁移文件

bee migrate -driver=mysql -conn="root:root@tcp(127.0.0.1:3306)/goblog"

你会得到以下信息
beego migrations

现在再次检查你的数据库,你会得到新的表 "user"
beego migrations directory