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