Move sql views to a .sql file
				
					
				
			This commit is contained in:
		
							parent
							
								
									1b04b71d9d
								
							
						
					
					
						commit
						754c21ab29
					
				| @ -1,6 +1,7 @@ | ||||
| package schema | ||||
| 
 | ||||
| import ( | ||||
| 	_ "embed" | ||||
| 	"strings" | ||||
| 
 | ||||
| 	"github.com/jinzhu/inflection" | ||||
| @ -10,32 +11,14 @@ import ( | ||||
| 	"git.offline-twitter.com/offline-labs/gas-stack/pkg/textutils" | ||||
| ) | ||||
| 
 | ||||
| //go:embed views.sql | ||||
| var create_views string | ||||
| 
 | ||||
| // InitDB creates an in-memory DB from a given schema string. | ||||
| func InitDB(sql_schema string) *sqlx.DB { | ||||
| 	db := sqlx.MustOpen("sqlite3", ":memory:") | ||||
| 	db.MustExec(sql_schema) | ||||
| 	db.MustExec(` | ||||
| 		create temporary view tables as | ||||
| 		    select l.schema, l.name, l.type, l.ncol, l.wr, l.strict | ||||
| 		      from sqlite_schema s | ||||
| 		 left join pragma_table_list l on s.name = l.name | ||||
| 		     where s.type = 'table'; | ||||
| 
 | ||||
| 		create temporary view columns as | ||||
| 		    select tables.name as table_name, | ||||
| 		           table_info.name as column_name, | ||||
| 		           lower(table_info.type) as column_type, | ||||
| 		           "notnull", | ||||
| 	               dflt_value is not null as has_default_value, | ||||
| 		           ifnull(dflt_value, 0) dflt_value, | ||||
| 		           pk as is_primary_key, | ||||
|        	           fk."table" is not null as is_foreign_key, | ||||
| 		           ifnull(fk."table", '') as fk_target_table, | ||||
| 		           ifnull(fk."to", '') as fk_target_column | ||||
| 		      from tables | ||||
| 		      join pragma_table_info(tables.name) as table_info | ||||
| 		 left join pragma_foreign_key_list(tables.name) as fk on fk."from" = column_name; | ||||
| 	`) | ||||
| 	db.MustExec(create_views) | ||||
| 	return db | ||||
| } | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										20
									
								
								pkg/schema/views.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								pkg/schema/views.sql
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,20 @@ | ||||
| create temporary view tables as | ||||
|     select l.schema, l.name, l.type, l.ncol, l.wr, l.strict | ||||
|         from sqlite_schema s | ||||
|     left join pragma_table_list l on s.name = l.name | ||||
|         where s.type = 'table'; | ||||
| 
 | ||||
| create temporary view columns as | ||||
|     select tables.name as table_name, | ||||
|             table_info.name as column_name, | ||||
|             lower(table_info.type) as column_type, | ||||
|             "notnull", | ||||
|             dflt_value is not null as has_default_value, | ||||
|             ifnull(dflt_value, 0) dflt_value, | ||||
|             pk as is_primary_key, | ||||
|             fk."table" is not null as is_foreign_key, | ||||
|             ifnull(fk."table", '') as fk_target_table, | ||||
|             ifnull(fk."to", '') as fk_target_column | ||||
|         from tables | ||||
|         join pragma_table_info(tables.name) as table_info | ||||
|     left join pragma_foreign_key_list(tables.name) as fk on fk."from" = column_name; | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user