我正在玩beego,但我坚持连接到postgresql db。
模型
package models
import(
"github.com/astaxie/beego/orm"
"time"
)
type User struct {
Id int
Username string `orm:"size(100);unique"`
Email string `orm:"size(64);unique"`
Created time.Time `orm:"auto_now_add;type(datetime);index"`
Edited time.Time `orm:"auto_now;type(datetime)"`
Passpheres string
Activated bool
}
func init() {
orm.RegisterModel(new(User))
}
这是主要的
package main
import (
_ "test/routers"
"github.com/astaxie/beego"
"github.com/astaxie/beego/orm"
_ "github.com/lib/pq"
"test/models"
"fmt"
)
func int(){
orm.RegisterDriver("postgres", orm.DRPostgres)
orm.RegisterDataBase("default",
"postgres",
"user=aaaa password=1234567 host=127.0.0.1 port=5432 dbname=gotest sslmode=disable");
orm.RunSyncdb("default", false, true)
}
func main() {
orm.Debug = true
o := orm.NewOrm()
o.Using("default")
u := new(models.User)
u.Username = "test1"
u.Email = "ads@asdad.com"
u.Passpheres = "123456"
u.Activated = true
id, err := o.Insert(u)
fmt.Printf("ID: %d, ERR: %v\n", id, err)
beego.Run()
}
日志显示:
必须有一个名为
的寄存器DataBase别名default
我检查了postgres的主机和端口,它们都是正确的,包括用户,密码和数据库。
这是因为db连接吗? 我顺便使用PostgreSQL 9.5.6和beego 1.8.1。
更新 我多么傻!!我错过了#34;我"在init函数声明中。所以我只需要纠正语法,并且一切顺利!
func init(){ // init instead of int
orm.RegisterDriver("postgres", orm.DRPostgres)
orm.RegisterDataBase("default",
"postgres",
"user=aaaa password=1234567 host=127.0.0.1 port=5432 dbname=gotest sslmode=disable");
orm.RunSyncdb("default", false, true)
}