Files
sponge/pkg/sql2code/parser/sqlite.go
zhuyasen a7fbe48e2b add test
2024-05-11 13:38:23 +08:00

43 lines
974 B
Go

package parser
import (
"strings"
"github.com/zhufuyi/sponge/pkg/ggorm"
)
var sqliteToMysqlTypeMap = map[string]string{
" INTEGER ": " INT ",
" REAL ": " FLOAT ",
" BOOLEAN ": " TINYINT ",
" NUMERIC ": " VARCHAR(255) ",
"AUTOINCREMENT": "auto_increment",
" integer ": " INT ",
" real ": " FLOAT ",
" boolean ": " TINYINT ",
" numeric ": " VARCHAR(255) ",
"autoincrement": "auto_increment",
}
// GetSqliteTableInfo get table info from sqlite
func GetSqliteTableInfo(dbFile string, tableName string) (string, error) {
db, err := ggorm.InitSqlite(dbFile)
if err != nil {
return "", err
}
defer closeDB(db)
var sql string
err = db.Raw("select sql from sqlite_master where type = ? and name = ?", "table", tableName).Scan(&sql).Error
if err != nil {
return "", err
}
for k, v := range sqliteToMysqlTypeMap {
sql = strings.ReplaceAll(sql, k, v)
}
sql = strings.ReplaceAll(sql, "\"", "")
return sql, nil
}