add selector functionality to generate script
This commit is contained in:
parent
4ec28e6064
commit
a63076c07c
@ -7,6 +7,8 @@ SELECT
|
|||||||
id
|
id
|
||||||
,description
|
,description
|
||||||
FROM account_t
|
FROM account_t
|
||||||
|
ORDER BY
|
||||||
|
description
|
||||||
""",
|
""",
|
||||||
"params": ()
|
"params": ()
|
||||||
}
|
}
|
||||||
@ -42,6 +44,9 @@ SELECT
|
|||||||
,iban
|
,iban
|
||||||
,account
|
,account
|
||||||
FROM tenant_t
|
FROM tenant_t
|
||||||
|
ORDER BY
|
||||||
|
lastname
|
||||||
|
,firstname
|
||||||
""",
|
""",
|
||||||
"params": ()
|
"params": ()
|
||||||
}
|
}
|
||||||
@ -80,6 +85,8 @@ SELECT
|
|||||||
,zip
|
,zip
|
||||||
,city
|
,city
|
||||||
FROM premise_t
|
FROM premise_t
|
||||||
|
ORDER BY
|
||||||
|
description
|
||||||
""",
|
""",
|
||||||
"params": ()
|
"params": ()
|
||||||
}
|
}
|
||||||
@ -110,6 +117,9 @@ SELECT
|
|||||||
,area
|
,area
|
||||||
,flat_no
|
,flat_no
|
||||||
FROM flat_t
|
FROM flat_t
|
||||||
|
ORDER BY
|
||||||
|
premise
|
||||||
|
,description
|
||||||
""",
|
""",
|
||||||
"params": ()
|
"params": ()
|
||||||
}
|
}
|
||||||
@ -140,6 +150,9 @@ SELECT
|
|||||||
,startdate
|
,startdate
|
||||||
,enddate
|
,enddate
|
||||||
FROM overhead_advance_t
|
FROM overhead_advance_t
|
||||||
|
ORDER BY
|
||||||
|
description
|
||||||
|
,startdate
|
||||||
""",
|
""",
|
||||||
"params": ()
|
"params": ()
|
||||||
}
|
}
|
||||||
@ -168,6 +181,9 @@ SELECT
|
|||||||
,overhead_advance
|
,overhead_advance
|
||||||
,flat
|
,flat
|
||||||
FROM overhead_advance_flat_mapping_t
|
FROM overhead_advance_flat_mapping_t
|
||||||
|
ORDER BY
|
||||||
|
overhead_advance
|
||||||
|
,flat
|
||||||
""",
|
""",
|
||||||
"params": ()
|
"params": ()
|
||||||
}
|
}
|
||||||
@ -194,6 +210,9 @@ SELECT
|
|||||||
,description
|
,description
|
||||||
,premise
|
,premise
|
||||||
FROM parking_t
|
FROM parking_t
|
||||||
|
ORDER BY
|
||||||
|
premise
|
||||||
|
,description
|
||||||
""",
|
""",
|
||||||
"params": ()
|
"params": ()
|
||||||
}
|
}
|
||||||
@ -220,6 +239,9 @@ SELECT
|
|||||||
,description
|
,description
|
||||||
,premise
|
,premise
|
||||||
FROM commercial_premise_t
|
FROM commercial_premise_t
|
||||||
|
ORDER BY
|
||||||
|
premise
|
||||||
|
,description
|
||||||
""",
|
""",
|
||||||
"params": ()
|
"params": ()
|
||||||
}
|
}
|
||||||
@ -251,6 +273,9 @@ SELECT
|
|||||||
,startdate
|
,startdate
|
||||||
,enddate
|
,enddate
|
||||||
FROM tenancy_t
|
FROM tenancy_t
|
||||||
|
ORDER BY
|
||||||
|
description
|
||||||
|
,startdate
|
||||||
""",
|
""",
|
||||||
"params": ()
|
"params": ()
|
||||||
}
|
}
|
||||||
@ -285,6 +310,9 @@ SELECT
|
|||||||
,startdate
|
,startdate
|
||||||
,enddate
|
,enddate
|
||||||
FROM fee_t
|
FROM fee_t
|
||||||
|
ORDER BY
|
||||||
|
description
|
||||||
|
,startdate
|
||||||
""",
|
""",
|
||||||
"params": ()
|
"params": ()
|
||||||
}
|
}
|
||||||
|
@ -10,6 +10,14 @@ SELECT
|
|||||||
,$column.name
|
,$column.name
|
||||||
#end for
|
#end for
|
||||||
FROM ${table.name}_t
|
FROM ${table.name}_t
|
||||||
|
#if $table.selectors
|
||||||
|
ORDER BY
|
||||||
|
#set $sep = ""
|
||||||
|
#for $selector in $table.selectors
|
||||||
|
$sep$selector
|
||||||
|
#set $sep = ","
|
||||||
|
#end for
|
||||||
|
#end if
|
||||||
""",
|
""",
|
||||||
"params": ()
|
"params": ()
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,8 @@ with open(args.schema) as schemaFile:
|
|||||||
schema = json.load(schemaFile)
|
schema = json.load(schemaFile)
|
||||||
|
|
||||||
for table in schema["tables"]:
|
for table in schema["tables"]:
|
||||||
for column in table["columns"]:
|
columns = table["columns"]
|
||||||
|
for column in columns:
|
||||||
if column["sqltype"] == 'serial':
|
if column["sqltype"] == 'serial':
|
||||||
column["apitype"] = 'integer'
|
column["apitype"] = 'integer'
|
||||||
column["jstype"] = 'number'
|
column["jstype"] = 'number'
|
||||||
@ -39,6 +40,7 @@ for table in schema["tables"]:
|
|||||||
elif column["sqltype"].startswith('numeric'):
|
elif column["sqltype"].startswith('numeric'):
|
||||||
column["apitype"] = 'number'
|
column["apitype"] = 'number'
|
||||||
column["jstype"] = 'number'
|
column["jstype"] = 'number'
|
||||||
|
table["selectors"] = [ y["name"] for y in sorted([ x for x in columns if "selector" in x ], key=lambda x: x["selector"])]
|
||||||
|
|
||||||
for f in glob.glob(args.template):
|
for f in glob.glob(args.template):
|
||||||
print(f"process {f}")
|
print(f"process {f}")
|
||||||
|
36
schema.json
36
schema.json
@ -3,15 +3,15 @@
|
|||||||
{
|
{
|
||||||
"name": "account",
|
"name": "account",
|
||||||
"columns": [
|
"columns": [
|
||||||
{ "name": "description", "sqltype": "varchar(128)", "notnull": true }
|
{ "name": "description", "sqltype": "varchar(128)", "notnull": true, "selector": 0 }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "tenant",
|
"name": "tenant",
|
||||||
"columns": [
|
"columns": [
|
||||||
{ "name": "salutation", "sqltype": "varchar(128)" },
|
{ "name": "salutation", "sqltype": "varchar(128)" },
|
||||||
{ "name": "firstname", "sqltype": "varchar(128)" },
|
{ "name": "firstname", "sqltype": "varchar(128)", "selector": 1 },
|
||||||
{ "name": "lastname", "sqltype": "varchar(128)" },
|
{ "name": "lastname", "sqltype": "varchar(128)", "selector": 0 },
|
||||||
{ "name": "address1", "sqltype": "varchar(128)" },
|
{ "name": "address1", "sqltype": "varchar(128)" },
|
||||||
{ "name": "address2", "sqltype": "varchar(128)" },
|
{ "name": "address2", "sqltype": "varchar(128)" },
|
||||||
{ "name": "address3", "sqltype": "varchar(128)" },
|
{ "name": "address3", "sqltype": "varchar(128)" },
|
||||||
@ -26,7 +26,7 @@
|
|||||||
{
|
{
|
||||||
"name": "premise",
|
"name": "premise",
|
||||||
"columns": [
|
"columns": [
|
||||||
{ "name": "description", "sqltype": "varchar(128)" },
|
{ "name": "description", "sqltype": "varchar(128)", "selector": 0 },
|
||||||
{ "name": "street", "sqltype": "varchar(128)", "notnull": true },
|
{ "name": "street", "sqltype": "varchar(128)", "notnull": true },
|
||||||
{ "name": "zip", "sqltype": "varchar(10)", "notnull": true },
|
{ "name": "zip", "sqltype": "varchar(10)", "notnull": true },
|
||||||
{ "name": "city", "sqltype": "varchar(128)", "notnull": true }
|
{ "name": "city", "sqltype": "varchar(128)", "notnull": true }
|
||||||
@ -35,8 +35,8 @@
|
|||||||
{
|
{
|
||||||
"name": "flat",
|
"name": "flat",
|
||||||
"columns": [
|
"columns": [
|
||||||
{ "name": "description", "sqltype": "varchar(128)" },
|
{ "name": "description", "sqltype": "varchar(128)", "selector": 1 },
|
||||||
{ "name": "premise", "sqltype": "integer", "foreignkey": true },
|
{ "name": "premise", "sqltype": "integer", "foreignkey": true, "selector": 0 },
|
||||||
{ "name": "area", "sqltype": "numeric(10,2)", "notnull": true },
|
{ "name": "area", "sqltype": "numeric(10,2)", "notnull": true },
|
||||||
{ "name": "flat_no", "sqltype": "integer" }
|
{ "name": "flat_no", "sqltype": "integer" }
|
||||||
]
|
]
|
||||||
@ -44,42 +44,42 @@
|
|||||||
{
|
{
|
||||||
"name": "overhead_advance",
|
"name": "overhead_advance",
|
||||||
"columns": [
|
"columns": [
|
||||||
{ "name": "description", "sqltype": "varchar(128)" },
|
{ "name": "description", "sqltype": "varchar(128)", "selector": 0 },
|
||||||
{ "name": "amount", "sqltype": "numeric(10,4)", "notnull": true },
|
{ "name": "amount", "sqltype": "numeric(10,4)", "notnull": true },
|
||||||
{ "name": "startdate", "sqltype": "date" },
|
{ "name": "startdate", "sqltype": "date", "selector": 1 },
|
||||||
{ "name": "enddate", "sqltype": "date" }
|
{ "name": "enddate", "sqltype": "date" }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "overhead_advance_flat_mapping",
|
"name": "overhead_advance_flat_mapping",
|
||||||
"columns": [
|
"columns": [
|
||||||
{ "name": "overhead_advance", "sqltype": "integer", "notnull": true, "foreignkey": true },
|
{ "name": "overhead_advance", "sqltype": "integer", "notnull": true, "foreignkey": true, "selector": 0 },
|
||||||
{ "name": "flat", "sqltype": "integer", "notnull": true, "foreignkey": true }
|
{ "name": "flat", "sqltype": "integer", "notnull": true, "foreignkey": true, "selector": 1 }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "parking",
|
"name": "parking",
|
||||||
"columns": [
|
"columns": [
|
||||||
{ "name": "description", "sqltype": "varchar(128)" },
|
{ "name": "description", "sqltype": "varchar(128)", "selector": 1 },
|
||||||
{ "name": "premise", "sqltype": "integer", "foreignkey": true }
|
{ "name": "premise", "sqltype": "integer", "foreignkey": true, "selector": 0 }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "commercial_premise",
|
"name": "commercial_premise",
|
||||||
"columns": [
|
"columns": [
|
||||||
{ "name": "description", "sqltype": "varchar(128)" },
|
{ "name": "description", "sqltype": "varchar(128)", "selector": 1 },
|
||||||
{ "name": "premise", "sqltype": "integer", "foreignkey": true }
|
{ "name": "premise", "sqltype": "integer", "foreignkey": true, "selector": 0 }
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "tenancy",
|
"name": "tenancy",
|
||||||
"columns": [
|
"columns": [
|
||||||
{ "name": "description", "sqltype": "varchar(128)" },
|
{ "name": "description", "sqltype": "varchar(128)", "selector": 0 },
|
||||||
{ "name": "tenant", "sqltype": "integer", "notnull": true, "foreignkey": true },
|
{ "name": "tenant", "sqltype": "integer", "notnull": true, "foreignkey": true },
|
||||||
{ "name": "flat", "sqltype": "integer", "notnull": false, "foreignkey": true },
|
{ "name": "flat", "sqltype": "integer", "notnull": false, "foreignkey": true },
|
||||||
{ "name": "parking", "sqltype": "integer", "notnull": false, "foreignkey": true },
|
{ "name": "parking", "sqltype": "integer", "notnull": false, "foreignkey": true },
|
||||||
{ "name": "commercial_premise", "sqltype": "integer", "notnull": false, "foreignkey": true },
|
{ "name": "commercial_premise", "sqltype": "integer", "notnull": false, "foreignkey": true },
|
||||||
{ "name": "startdate", "sqltype": "date", "notnull": true },
|
{ "name": "startdate", "sqltype": "date", "notnull": true, "selector": 1 },
|
||||||
{ "name": "enddate", "sqltype": "date", "notnull": false }
|
{ "name": "enddate", "sqltype": "date", "notnull": false }
|
||||||
],
|
],
|
||||||
"tableConstraints": [
|
"tableConstraints": [
|
||||||
@ -89,10 +89,10 @@
|
|||||||
{
|
{
|
||||||
"name": "fee",
|
"name": "fee",
|
||||||
"columns": [
|
"columns": [
|
||||||
{ "name": "description", "sqltype": "varchar(128)" },
|
{ "name": "description", "sqltype": "varchar(128)", "selector": 0 },
|
||||||
{ "name": "amount", "sqltype": "numeric(10,2)", "notnull": true },
|
{ "name": "amount", "sqltype": "numeric(10,2)", "notnull": true },
|
||||||
{ "name": "fee_type", "sqltype": "varchar(10)", "notnull": true },
|
{ "name": "fee_type", "sqltype": "varchar(10)", "notnull": true },
|
||||||
{ "name": "startdate", "sqltype": "date" },
|
{ "name": "startdate", "sqltype": "date", "selector": 1 },
|
||||||
{ "name": "enddate", "sqltype": "date" }
|
{ "name": "enddate", "sqltype": "date" }
|
||||||
],
|
],
|
||||||
"tableConstraints": [
|
"tableConstraints": [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user