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