This commit is contained in:
jdl
2024-11-19 16:30:42 +01:00
parent 0d8cc762c0
commit 9070d8cfc0
6 changed files with 43 additions and 24 deletions

View File

@@ -6,15 +6,15 @@ import (
"strings"
)
func parsePath(filePath string) (*schema, error) {
func parsePath(driver, filePath string) (*schema, error) {
fileBytes, err := os.ReadFile(filePath)
if err != nil {
return nil, err
}
return parseBytes(fileBytes)
return parseBytes(driver, fileBytes)
}
func parseBytes(fileBytes []byte) (*schema, error) {
func parseBytes(driver string, fileBytes []byte) (*schema, error) {
s := string(fileBytes)
for _, c := range []string{",", "(", ")", ";"} {
s = strings.ReplaceAll(s, c, " "+c+" ")
@@ -29,7 +29,7 @@ func parseBytes(fileBytes []byte) (*schema, error) {
for len(tokens) > 0 {
switch tokens[0] {
case "TABLE":
tokens, err = parseTable(schema, tokens)
tokens, err = parseTable(driver, schema, tokens)
if err != nil {
return nil, err
}
@@ -42,7 +42,7 @@ func parseBytes(fileBytes []byte) (*schema, error) {
return schema, nil
}
func parseTable(schema *schema, tokens []string) ([]string, error) {
func parseTable(driver string, schema *schema, tokens []string) ([]string, error) {
tokens = tokens[1:]
if len(tokens) < 3 {
return tokens, errors.New("incomplete table definition")
@@ -52,8 +52,9 @@ func parseTable(schema *schema, tokens []string) ([]string, error) {
}
table := &table{
Name: tokens[0],
Type: tokens[2],
driver: driver,
Name: tokens[0],
Type: tokens[2],
}
schema.Tables = append(schema.Tables, table)