{"id":22782257,"url":"https://github.com/geocml/tabor","last_synced_at":"2026-04-10T23:36:25.563Z","repository":{"id":176274542,"uuid":"554339790","full_name":"geoCML/tabor","owner":"geoCML","description":"Tabor is a database modeling language for GIS","archived":false,"fork":false,"pushed_at":"2024-11-22T20:12:39.000Z","size":55,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-05T16:23:09.010Z","etag":null,"topics":["command-line","database-modeling","gis","postgis","postgresql","programming-language","yaml"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/geoCML.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-19T16:42:11.000Z","updated_at":"2024-11-21T17:56:39.000Z","dependencies_parsed_at":"2024-09-15T21:35:16.128Z","dependency_job_id":"77f9ad91-7921-49b8-8e02-d663928e9be5","html_url":"https://github.com/geoCML/tabor","commit_stats":null,"previous_names":["geocml/tabor"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoCML%2Ftabor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoCML%2Ftabor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoCML%2Ftabor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/geoCML%2Ftabor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/geoCML","download_url":"https://codeload.github.com/geoCML/tabor/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246333931,"owners_count":20760638,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line","database-modeling","gis","postgis","postgresql","programming-language","yaml"],"created_at":"2024-12-11T21:09:57.296Z","updated_at":"2026-04-10T23:36:25.556Z","avatar_url":"https://github.com/geoCML.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tabor\n\nTabor is a database modeling language for GIS based on YAML, but with additional syntax restrictions. The goal of the Tabor project is to allow GIS users to create and maintain complex database rules using plain-text configuration files. The following is an example of a Tabor configuration file for a PostGIS database:\n\n```\ntabor: 4.0\nlayers:\n\n- name: grass\n  schema: public\n  owner: geocml\n  geometry: polygon\n  srid: 4326\n  fields:\n    - name: fid\n      type: int\n      pk: true\n\n- name: trees\n  schema: public\n  owner: geocml\n  geometry: point\n  srid: 4326\n  fields:\n  - name: fid\n    type: int\n    pk: true\n  - name: genus\n    type: text\n  - name: species\n    type: text\n  - name: height_meters\n    type: numeric\n  - name: circumference_cm\n    type: numeric\n  constraints:\n    - name: on\n      layer: grass\n\n- name: streams\n  schema: public\n  owner: geocml\n  geometry: polyline\n  srid: 4326\n  fields:\n    - name: fid\n      type: int\n      pk: true\n```\n\nRunning this file through the Tabor command line utility generates a valid PostgreSQL schema query that can be used to create or update tables in a PostGIS database.\n\n# Downloading and Installing Tabor\n\nTabor can be downloaded directly from this repository (under Releases). After downloading, simply extract the downloaded .zip file to a directory accessible on your terminal path.\n\n# Usage\n\n`tabor read --file \u003cpath/to/file\u003e` -\u003e Converts a .tabor file into a PostGIS schema query.\n\n`tabor write --file \u003cpath/to/file\u003e --db \u003cname_of_psql_db\u003e --username \u003cname of db user\u003e --password \u003cpassword of db user?\u003e --host \u003chost of psql db?\u003e --port \u003cport of psql db?\u003e --ignore \u003ctables to ignore?\u003e` -\u003e Converts a PostGIS database to a .tabor file\n\n`tabor load --file \u003cpath/to/file\u003e --db \u003cname_of_psql_db\u003e --username \u003cname of db user\u003e --password \u003cpassword of db user?\u003e --host \u003chost of psql db?\u003e --port \u003cport of psql db?\u003e` -\u003e Loads a PostGIS database from a .tabor file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeocml%2Ftabor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeocml%2Ftabor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeocml%2Ftabor/lists"}