升级 install 能力, 支持sqlite

This commit is contained in:
2024-06-17 16:30:41 +08:00
parent da7c75526a
commit 24aa0d3f9b
7 changed files with 64 additions and 15 deletions

View File

@ -9,9 +9,23 @@ package define
import (
"fmt"
"git.zhangdeman.cn/zhangdeman/consts"
"strings"
)
var (
DatabaseDriver = consts.DatabaseDriverMysql
)
// SetDatabaseDriver 设置数据库驱动
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:48 2024/6/17
func SetDatabaseDriver(databaseDriver string) {
DatabaseDriver = databaseDriver
}
// Table 数据表的数据结构
//
// Author : go_developer@163.com<白茶清欢>
@ -82,7 +96,7 @@ func (t *Table) Validate() error {
//
// Date : 18:46 2023/9/17
func (t *Table) ToString() (string, error) {
tableTpl := MysqlTableTpl
tableTpl := t.getTableSqlTpl()
replaceTable := map[string]string{
TableName: t.Name, // 表名
TableFieldList: "", // 表字段
@ -109,7 +123,7 @@ func (t *Table) ToString() (string, error) {
}
indexList = append(indexList, indexStr)
}
if len(indexList) == 0 {
if len(indexList) == 0 || consts.DatabaseDriverSqlite3 == DatabaseDriver {
replaceTable[TableFieldList] = strings.Join(fieldList, ",")
} else {
replaceTable[TableFieldList] = strings.Join(fieldList, ",") + ","
@ -151,3 +165,18 @@ func (t *Table) ToStringIgnoreError() string {
sql, _ := t.ToString()
return sql
}
// getTableSqlTpl 获取表结构的模板
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 14:50 2024/6/17
func (t *Table) getTableSqlTpl() string {
switch DatabaseDriver {
case consts.DatabaseDriverMysql:
return MysqlTableTpl
case consts.DatabaseDriverSqlite3:
return SqliteTableTpl
}
panic(DatabaseDriver + " : database driver is not support")
}