我只是想用revelgormpq创建新项目。
我在Page中有模型app/models:

package models

import (
    "time"
)

type Page struct {
    Id        int64
    Title     string `sql:"size:255"`
    Context   string
    Url       string
    MetaKeys  string
    MetaDescr string
    CreatedAt time.Time
    UpdatedAt time.Time
    DeletedAt time.Time
}

gorm.go中的app/controllers:
package controllers

import (
    _ "myapp/app/models"
    _ "code.google.com/p/go.crypto/bcrypt"
    _ "database/sql"
    "fmt"
    "github.com/jinzhu/gorm"
    _ "github.com/lib/pq"
    _ "github.com/revel/revel"
    "github.com/revel/revel/modules/db/app"
)

var (
    DB gorm.DB
)

func InitDB() {
    db.Init()

    var err error
    DB, err = gorm.Open("postgres", "user=postgres dbname=mydb_development sslmode=disable")
    if err != nil {
        panic(fmt.Sprintf("Got error when connect database, the error is '%v'", err))
    }

    DB.LogMode(true)

    DB.AutoMigrate(Page{})
}

我在undefined: Page行中出现错误DB.AutoMigrate(Page{}),但是在_ "myapp/app/models"行中链接了我的模型。怎么了?

最佳答案

您忘了添加模型的包标识符:由于模型结构是在另一个包中定义的,因此它的名称(局部于controllers包)应为models.Page

如果您真的想摆脱软件包标识符,并且喜欢本地定义的软件包,我认为您也可以通过将models软件包分配给.标识符来本地导入ojit_code软件包。例子:

import (
    . "myapp/app/models"
)

关于postgresql - Revel 于Gorm “undefined: Page”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24409631/

10-15 22:46