Improve generator error handling
This commit is contained in:
parent
b38b63d804
commit
06ecd73f67
12 changed files with 386 additions and 176 deletions
|
|
@ -14,23 +14,38 @@ const (
|
|||
ViewTable TableType = "VIEW"
|
||||
)
|
||||
|
||||
// DialectQuerySet is set of methods necessary to retrieve dialect meta data information
|
||||
// DialectQuerySet is set of methods necessary to retrieve dialect metadata information
|
||||
type DialectQuerySet interface {
|
||||
GetTablesMetaData(db *sql.DB, schemaName string, tableType TableType) []Table
|
||||
GetEnumsMetaData(db *sql.DB, schemaName string) []Enum
|
||||
GetTablesMetaData(db *sql.DB, schemaName string, tableType TableType) ([]Table, error)
|
||||
GetEnumsMetaData(db *sql.DB, schemaName string) ([]Enum, error)
|
||||
}
|
||||
|
||||
// GetSchema retrieves Schema information from database
|
||||
func GetSchema(db *sql.DB, querySet DialectQuerySet, schemaName string) Schema {
|
||||
func GetSchema(db *sql.DB, querySet DialectQuerySet, schemaName string) (Schema, error) {
|
||||
tablesMetaData, err := querySet.GetTablesMetaData(db, schemaName, BaseTable)
|
||||
if err != nil {
|
||||
return Schema{}, fmt.Errorf("failed to get %s tables metadata: %w", schemaName, err)
|
||||
}
|
||||
|
||||
viewMetaData, err := querySet.GetTablesMetaData(db, schemaName, ViewTable)
|
||||
if err != nil {
|
||||
return Schema{}, fmt.Errorf("failed to get %s view metadata: %w", schemaName, err)
|
||||
}
|
||||
|
||||
enumsMetaData, err := querySet.GetEnumsMetaData(db, schemaName)
|
||||
if err != nil {
|
||||
return Schema{}, fmt.Errorf("failed to get %s enum metadata: %w", schemaName, err)
|
||||
}
|
||||
|
||||
ret := Schema{
|
||||
Name: schemaName,
|
||||
TablesMetaData: querySet.GetTablesMetaData(db, schemaName, BaseTable),
|
||||
ViewsMetaData: querySet.GetTablesMetaData(db, schemaName, ViewTable),
|
||||
EnumsMetaData: querySet.GetEnumsMetaData(db, schemaName),
|
||||
TablesMetaData: tablesMetaData,
|
||||
ViewsMetaData: viewMetaData,
|
||||
EnumsMetaData: enumsMetaData,
|
||||
}
|
||||
|
||||
fmt.Println(" FOUND", len(ret.TablesMetaData), "table(s),", len(ret.ViewsMetaData), "view(s),",
|
||||
len(ret.EnumsMetaData), "enum(s)")
|
||||
|
||||
return ret
|
||||
return ret, nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue