wip
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user