Add Schema definition changes to support the linter functions
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				CI / release-test (push) Failing after 16s
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	CI / release-test (push) Failing after 16s
				
			This commit is contained in:
		
							parent
							
								
									8b422ada11
								
							
						
					
					
						commit
						100b53d799
					
				| @ -2,6 +2,8 @@ package schema | ||||
| 
 | ||||
| import ( | ||||
| 	_ "embed" | ||||
| 	"fmt" | ||||
| 	"os" | ||||
| 	"strings" | ||||
| 
 | ||||
| 	"github.com/jinzhu/inflection" | ||||
| @ -22,6 +24,14 @@ func InitDB(sql_schema string) *sqlx.DB { | ||||
| 	return db | ||||
| } | ||||
| 
 | ||||
| func SchemaFromSQLFile(filepath string) (Schema, error) { | ||||
| 	sqlBytes, err := os.ReadFile(filepath) | ||||
| 	if err != nil { | ||||
| 		return Schema{}, fmt.Errorf("failed to read SQL file: %w", err) | ||||
| 	} | ||||
| 	return SchemaFromDB(InitDB(string(sqlBytes))), nil | ||||
| } | ||||
| 
 | ||||
| // SchemaFromDB takes a DB connection, checks its schema metadata tables, and returns a Schema. | ||||
| func SchemaFromDB(db *sqlx.DB) Schema { | ||||
| 	ret := Schema{Tables: map[string]Table{}, Indexes: map[string]Index{}} | ||||
|  | ||||
| @ -9,6 +9,7 @@ type Column struct { | ||||
| 	HasDefaultValue        bool   `db:"has_default_value"` | ||||
| 	DefaultValue           string `db:"dflt_value"` | ||||
| 	IsPrimaryKey           bool   `db:"is_primary_key"` | ||||
| 	PrimaryKeyRank         uint   `db:"primary_key_rank"` | ||||
| 	IsForeignKey           bool   `db:"is_foreign_key"` | ||||
| 	ForeignKeyTargetTable  string `db:"fk_target_table"` | ||||
| 	ForeignKeyTargetColumn string `db:"fk_target_column"` | ||||
|  | ||||
| @ -15,7 +15,8 @@ create temporary view columns as | ||||
|            "notnull", | ||||
|            dflt_value is not null as has_default_value, | ||||
|            ifnull(dflt_value, 0) dflt_value, | ||||
|            pk as is_primary_key, | ||||
|            pk != 0 as is_primary_key, | ||||
|            pk as primary_key_rank, | ||||
|            fk."table" is not null as is_foreign_key, | ||||
|            ifnull(fk."table", '') as fk_target_table, | ||||
|            ifnull(fk."to", '') as fk_target_column | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user