dto.go 816 Bytes
package dto

import (
	"github.com/astaxie/beego/logs"
	"github.com/astaxie/beego/orm"
	"io/ioutil"
	"os"
	"strings"
)

func CreateTable(o orm.Ormer, dbName string, tb ITableData, gameId string) (err error) {

	o.Using(dbName)

	createSqlPath := "./conf/conf/db/" + tb.CreateSqlPath() + ".sql"
	createSql, err := readFileSql(createSqlPath, tb.TableName(gameId))
	if err != nil {
		logs.Error(err)
		return
	}

	_, err = o.Raw(createSql).Exec()
	if err != nil {
		//logs.Error(err)
		return
	}

	return
}

func readFileSql(createSqlPath, tableName string) (sql string, err error) {
	filePtr, err := os.Open(createSqlPath)
	if err != nil {
		return
	}
	defer filePtr.Close()

	by, err := ioutil.ReadAll(filePtr)
	if err != nil {
		return
	}

	sql = strings.Replace(string(by), "{tablename}", tableName, -1)

	return
}