diff --git a/gen/computer.html b/gen/computer.html new file mode 100644 index 0000000..71145ec --- /dev/null +++ b/gen/computer.html @@ -0,0 +1,6 @@ +computer + description : varchar(1000) + id : integer + name : varchar(255)|comment + os : varchar(255) +} \ No newline at end of file diff --git a/gen/dbentity.html b/gen/dbentity.html new file mode 100644 index 0000000..3ff966c --- /dev/null +++ b/gen/dbentity.html @@ -0,0 +1,6 @@ +dbentity + description : text + id : integer + parent_id : bigint + type : varchar(255) +} \ No newline at end of file diff --git a/gen/dbrole.html b/gen/dbrole.html new file mode 100644 index 0000000..11df578 --- /dev/null +++ b/gen/dbrole.html @@ -0,0 +1,5 @@ +dbrole + description : text + id : integer + name : varchar +} \ No newline at end of file diff --git a/gen/dbtableaccess.html b/gen/dbtableaccess.html new file mode 100644 index 0000000..d0acb94 --- /dev/null +++ b/gen/dbtableaccess.html @@ -0,0 +1,6 @@ +dbtableaccess + dbrole_id : integer + id : integer + tableaccess : varchar(255) + userrolerestrictions : varchar(255) +} \ No newline at end of file diff --git a/gen/dbuser.html b/gen/dbuser.html new file mode 100644 index 0000000..944e720 --- /dev/null +++ b/gen/dbuser.html @@ -0,0 +1,5 @@ +dbuser + id : integer + login : varchar(255)|comment + password : varchar(255) +} \ No newline at end of file diff --git a/gen/dbuserrole.html b/gen/dbuserrole.html new file mode 100644 index 0000000..b962294 --- /dev/null +++ b/gen/dbuserrole.html @@ -0,0 +1,8 @@ +dbuserrole + dbentity_id : integer + dbrole_id : integer + dbuser_id : integer + enddate : timestamp without time zone + id : integer + startdate : timestamp without time zone +} \ No newline at end of file diff --git a/gen/entity.html b/gen/entity.html new file mode 100644 index 0000000..e490379 --- /dev/null +++ b/gen/entity.html @@ -0,0 +1,7 @@ +entity + enddate : date + id : integer + name : varchar(255) + startdate : date + type : varchar(255) +} \ No newline at end of file diff --git a/gen/person.html b/gen/person.html new file mode 100644 index 0000000..198a54d --- /dev/null +++ b/gen/person.html @@ -0,0 +1,7 @@ +person + email : varchar(255) + firstname : varchar(255) + id : integer + mobile : varchar(255) + name : varchar(255) +} \ No newline at end of file diff --git a/gen/software.html b/gen/software.html new file mode 100644 index 0000000..e9d6761 --- /dev/null +++ b/gen/software.html @@ -0,0 +1,8 @@ +software + company : varchar(255) + description : varchar(1000) + id : integer + licenseend : date + name : varchar(255)|comment + support : varchar(255) +} \ No newline at end of file diff --git a/gen/software_computer.html b/gen/software_computer.html new file mode 100644 index 0000000..d50053b --- /dev/null +++ b/gen/software_computer.html @@ -0,0 +1,5 @@ +software_computer + computer_id : integer + id : integer + software_id : integer +} \ No newline at end of file diff --git a/gen/test.html b/gen/test.html new file mode 100644 index 0000000..266a96d --- /dev/null +++ b/gen/test.html @@ -0,0 +1,13 @@ +test + description : varchar(1000) + enddate : timestamp without time zone + floatvalue : double precision + id : integer + intvalue : integer + latitude : double precision|map + longitude : double precision|map + name : varchar(255)|comment + price : money + startdate : timestamp without time zone + testtype_id : integer +} \ No newline at end of file diff --git a/gen/testtype.html b/gen/testtype.html new file mode 100644 index 0000000..1433f48 --- /dev/null +++ b/gen/testtype.html @@ -0,0 +1,5 @@ +testtype + detail : varchar(255) + id : integer + name : varchar(255) +} \ No newline at end of file diff --git a/gen/timetracking.html b/gen/timetracking.html new file mode 100644 index 0000000..20540fb --- /dev/null +++ b/gen/timetracking.html @@ -0,0 +1,8 @@ +timetracking + afternoon_entity_id : integer + comment : varchar(255) + day : date + id : integer + morning_entity_id : integer + person_id : integer +} \ No newline at end of file diff --git a/go.mod b/go.mod index 81e34ce..1f07233 100644 --- a/go.mod +++ b/go.mod @@ -1,5 +1,5 @@ module forge.redroom.link/yves/sqldb -go 1.15 +go 1.17 -require github.com/lib/pq v1.10.3 +require github.com/lib/pq v1.10.4 diff --git a/go.sum b/go.sum index 8288f47..08b950f 100644 --- a/go.sum +++ b/go.sum @@ -1,2 +1,2 @@ -github.com/lib/pq v1.10.3 h1:v9QZf2Sn6AmjXtQeFpdoq/eaNtYP6IN+7lcrygsIAtg= -github.com/lib/pq v1.10.3/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/lib/pq v1.10.4 h1:SO9z7FRPzA03QhHKJrH5BXA6HU1rS4V2nIVrrNC1iYk= +github.com/lib/pq v1.10.4/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= diff --git a/pfn.json b/pfn.json index 0cdfcdb..1272944 100644 --- a/pfn.json +++ b/pfn.json @@ -61,6 +61,7 @@ "day":"date", "morning_entity_id":"integer", "afternoon_entity_id":"integer", + "person_id":"integer", "comment":"varchar(255)" } } diff --git a/pg.go b/pg.go index 2773f0f..b32b8ef 100755 --- a/pg.go +++ b/pg.go @@ -447,6 +447,7 @@ func (db *Db) SaveSchema(generatedFilename string) error { log.Println(err) return err } + // file, _ := json.Marshal(schema) file, _ := json.MarshalIndent(schema, "", " ") _ = ioutil.WriteFile(generatedFilename, file, 0644) return nil diff --git a/schema.json b/schema.json new file mode 100644 index 0000000..82c4f41 --- /dev/null +++ b/schema.json @@ -0,0 +1,156 @@ +[ + { + "name": "computer", + "columns": { + "description": "varchar(1000)", + "id": "integer", + "name": "varchar(255)|comment", + "os": "varchar(255)" + } + }, + { + "name": "dbentity", + "columns": { + "description": "text", + "id": "integer", + "parent_id": "bigint", + "type": "varchar(255)" + } + }, + { + "name": "dbrole", + "columns": { + "description": "text", + "id": "integer", + "name": "varchar" + } + }, + { + "name": "dbtableaccess", + "columns": { + "dbrole_id": "integer", + "id": "integer", + "tableaccess": "varchar(255)", + "userrolerestrictions": "varchar(255)" + } + }, + { + "name": "dbuser", + "columns": { + "id": "integer", + "login": "varchar(255)|comment", + "password": "varchar(255)" + } + }, + { + "name": "dbuserrole", + "columns": { + "dbentity_id": "integer", + "dbrole_id": "integer", + "dbuser_id": "integer", + "enddate": "timestamp without time zone", + "id": "integer", + "startdate": "timestamp without time zone" + } + }, + { + "name": "entity", + "columns": { + "enddate": "date", + "id": "integer", + "name": "varchar(255)", + "startdate": "date", + "type": "varchar(255)" + } + }, + { + "name": "person", + "columns": { + "email": "varchar(255)", + "firstname": "varchar(255)", + "id": "integer", + "mobile": "varchar(255)", + "name": "varchar(255)" + } + }, + { + "name": "software", + "columns": { + "company": "varchar(255)", + "description": "varchar(1000)", + "id": "integer", + "licenseend": "date", + "name": "varchar(255)|comment", + "support": "varchar(255)" + } + }, + { + "name": "software_computer", + "columns": { + "computer_id": "integer", + "id": "integer", + "software_id": "integer" + } + }, + { + "name": "test", + "columns": { + "description": "varchar(1000)", + "enddate": "timestamp without time zone", + "floatvalue": "double precision", + "id": "integer", + "intvalue": "integer", + "latitude": "double precision|map", + "longitude": "double precision|map", + "name": "varchar(255)|comment", + "price": "money", + "startdate": "timestamp without time zone", + "testtype_id": "integer" + } + }, + { + "name": "testtype", + "columns": { + "detail": "varchar(255)", + "id": "integer", + "name": "varchar(255)" + } + }, + { + "name": "timetracking", + "columns": { + "afternoon_entity_id": "integer", + "comment": "varchar(255)", + "day": "date", + "id": "integer", + "morning_entity_id": "integer" + } + }, + { + "name": "surveyquestion", + "columns": { + "type": "integer", + "label": "varchar(1000)", + "responses": "varchar(1000)", + "id": "integer", + "votes": "integer" + } + }, + { + "name": "surveyresponse", + "columns": { + "surveyuser_id": "integer", + "surveyquestion_id": "varchar(255)", + "response": "varchar(1000)", + "id": "integer" + } + }, + { + "name": "surveyuser", + "columns": { + "voted": "bool", + "code": "varchar(255)", + "id": "integer" + } + } +] \ No newline at end of file diff --git a/schema.puml b/schema.puml new file mode 100644 index 0000000..2478a8a --- /dev/null +++ b/schema.puml @@ -0,0 +1,132 @@ +@startuml + + +entity computer { + description : varchar(1000) + id : integer + name : varchar(255)|comment + os : varchar(255) +} + +entity dbentity { + description : text + id : integer + parent_id : bigint + type : varchar(255) +} + +entity dbrole { + description : text + id : integer + name : varchar +} + +entity dbtableaccess { + dbrole_id : integer + id : integer + tableaccess : varchar(255) + userrolerestrictions : varchar(255) +} + +entity dbuser { + id : integer + login : varchar(255)|comment + password : varchar(255) +} + +entity dbuserrole { + dbentity_id : integer + dbrole_id : integer + dbuser_id : integer + enddate : timestamp without time zone + id : integer + startdate : timestamp without time zone +} + +entity entity { + enddate : date + id : integer + name : varchar(255) + startdate : date + type : varchar(255) +} + +entity person { + email : varchar(255) + firstname : varchar(255) + id : integer + mobile : varchar(255) + name : varchar(255) +} + +entity software { + company : varchar(255) + description : varchar(1000) + id : integer + licenseend : date + name : varchar(255)|comment + support : varchar(255) +} + +entity software_computer { + computer_id : integer + id : integer + software_id : integer +} + +entity test { + description : varchar(1000) + enddate : timestamp without time zone + floatvalue : double precision + id : integer + intvalue : integer + latitude : double precision|map + longitude : double precision|map + name : varchar(255)|comment + price : money + startdate : timestamp without time zone + testtype_id : integer +} + +entity testtype { + detail : varchar(255) + id : integer + name : varchar(255) +} + +entity timetracking { + afternoon_entity_id : integer + comment : varchar(255) + day : date + id : integer + morning_entity_id : integer + person_id : integer +} + + + +dbentity ||..|| parent + +dbtableaccess ||..|| dbrole + +dbuserrole ||..|| dbentity + +dbuserrole ||..|| dbrole + +dbuserrole ||..|| dbuser + +software_computer ||..|| computer + +software_computer ||..|| software + +test ||..|| testtype + +timetracking ||..|| entity + +timetracking ||..|| person + +timetracking ||..|| entity + + +@enduml + diff --git a/table.tmpl b/table.tmpl index 6d5232f..ad4fddf 100644 --- a/table.tmpl +++ b/table.tmpl @@ -1 +1,3 @@ -{{.Name}} \ No newline at end of file +{{.Name}} +{{range $key, $value := .Columns}} {{$key}} : {{$value}} +{{end}} \ No newline at end of file