Open KurikoKudo opened 6 years ago
MySQLのみ.
import (
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/mysql"
)
func gormConnect() *gorm.DB {
DBMS := "mysql"
USER := "mysolutions" //ユーザ名
PASS := "MySystem2017!" //パスワード
PROTOCOL := "tcp(localhost:3306)" //接続プロトコル
DBNAME := "mysolutions" //DB名
CONNECT := USER + ":" + PASS + "@" + PROTOCOL + "/" + DBNAME + "?charset=utf8&parseTime=True&loc=Local" //上記情報をまとめてStringに.
db, err := gorm.Open(DBMS, CONNECT) //上記情報を代入(ここに直接打ち込んでもよい)
if err != nil {
panic(err.Error())
}
return db
}
create table する前に、modelの書き方 jsonは使うかなと思って適当につけたのであとで調整する
import (
_ "github.com/jinzhu/gorm/dialects/mysql"
)
type Page_Display struct { //not DB
Page_Body Page_Body
Tag []Tag
Page_Relation []Page_Relation
}
type Page_Body struct {
Page_Id uint `json:page_id gorm:"primary_key"` // int/uint型はprimary_keyにすると自動でAUTO_INCREMENTになるよ
Page_Title string `json:page_title gorm:"not null"`
Page_Body string `json:page_body gorm:"not null"`
Evaluation uint `json:evalution gorm:"not null"`
Condition bool `json:condition gorm:"not null"`
}
type Tag struct {
Page_Id uint `json:page_id gorm:"not null"`
Tag_Name string `json:tag_name gorm:"not null"`
}
type Page_Relation struct {
Page_id0 uint `json:page_id gorm:"not null"`
Page_id1 uint `json:page_id gorm:"not null"`
}
type Summary_Body struct {
Summary_Id uint `json:summary_id gorm:"primary_key"`
Summary_Title uint `json:summary_title gorm:"not null"`
Page_Total uint `json:page_total gorm:"not null"`
}
type Summary_Page struct {
Summary_Id uint `json:summary_id gorm:"not null"`
Page_Id uint `json:page_id gorm:"not null"`
Page_Number uint `json:page_number gorm:"not null"`
}
create table の関数
func Migration() {
db := gormConnect()
db.CreateTable(&models.Page_Body{})
db.CreateTable(&models.Tag{})
db.CreateTable(&models.Page_Relation{})
db.CreateTable(&models.Summary_Body{})
db.CreateTable(&models.Summary_Page{})
}
mysqlにcreateしたtableを消してやり直したい時は上記CreateをDropにすれば消してくれる
http://doc.gorm.io/ 英語で読むのが面倒なのでメモ書き