jet/generator/datamodel_generator.go
2019-04-30 11:31:00 +02:00

58 lines
1.1 KiB
Go

package generator
import (
"github.com/sub0zero/go-sqlbuilder/generator/metadata"
"path/filepath"
)
func generateDataModel(databaseInfo *metadata.DatabaseInfo, dirPath string) error {
modelDirPath := filepath.Join(dirPath, databaseInfo.DatabaseName, databaseInfo.SchemaName, "model")
err := ensureDirPath(modelDirPath)
if err != nil {
return err
}
for _, tableInfo := range databaseInfo.TableInfos {
text, err := generateTemplate(DataModelTemplate, tableInfo)
if err != nil {
return err
}
err = saveGoFile(modelDirPath, tableInfo.Name, text)
if err != nil {
return err
}
}
return nil
}
func generateEnumTypes(databaseInfo *metadata.DatabaseInfo, dirPath string) error {
modelDirPath := filepath.Join(dirPath, databaseInfo.DatabaseName, databaseInfo.SchemaName, "model")
err := ensureDirPath(modelDirPath)
if err != nil {
return err
}
for _, enumInfo := range databaseInfo.EnumInfos {
text, err := generateTemplate(EnumModelTemplate, enumInfo)
if err != nil {
return err
}
err = saveGoFile(modelDirPath, enumInfo.Name, text)
if err != nil {
return err
}
}
return nil
}