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 ( | import ( | ||||||
| 	_ "embed" | 	_ "embed" | ||||||
|  | 	"fmt" | ||||||
|  | 	"os" | ||||||
| 	"strings" | 	"strings" | ||||||
| 
 | 
 | ||||||
| 	"github.com/jinzhu/inflection" | 	"github.com/jinzhu/inflection" | ||||||
| @ -22,6 +24,14 @@ func InitDB(sql_schema string) *sqlx.DB { | |||||||
| 	return 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. | // SchemaFromDB takes a DB connection, checks its schema metadata tables, and returns a Schema. | ||||||
| func SchemaFromDB(db *sqlx.DB) Schema { | func SchemaFromDB(db *sqlx.DB) Schema { | ||||||
| 	ret := Schema{Tables: map[string]Table{}, Indexes: map[string]Index{}} | 	ret := Schema{Tables: map[string]Table{}, Indexes: map[string]Index{}} | ||||||
|  | |||||||
| @ -9,6 +9,7 @@ type Column struct { | |||||||
| 	HasDefaultValue        bool   `db:"has_default_value"` | 	HasDefaultValue        bool   `db:"has_default_value"` | ||||||
| 	DefaultValue           string `db:"dflt_value"` | 	DefaultValue           string `db:"dflt_value"` | ||||||
| 	IsPrimaryKey           bool   `db:"is_primary_key"` | 	IsPrimaryKey           bool   `db:"is_primary_key"` | ||||||
|  | 	PrimaryKeyRank         uint   `db:"primary_key_rank"` | ||||||
| 	IsForeignKey           bool   `db:"is_foreign_key"` | 	IsForeignKey           bool   `db:"is_foreign_key"` | ||||||
| 	ForeignKeyTargetTable  string `db:"fk_target_table"` | 	ForeignKeyTargetTable  string `db:"fk_target_table"` | ||||||
| 	ForeignKeyTargetColumn string `db:"fk_target_column"` | 	ForeignKeyTargetColumn string `db:"fk_target_column"` | ||||||
|  | |||||||
| @ -15,7 +15,8 @@ create temporary view columns as | |||||||
|            "notnull", |            "notnull", | ||||||
|            dflt_value is not null as has_default_value, |            dflt_value is not null as has_default_value, | ||||||
|            ifnull(dflt_value, 0) dflt_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, |            fk."table" is not null as is_foreign_key, | ||||||
|            ifnull(fk."table", '') as fk_target_table, |            ifnull(fk."table", '') as fk_target_table, | ||||||
|            ifnull(fk."to", '') as fk_target_column |            ifnull(fk."to", '') as fk_target_column | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user