CJDB is a set of tools enabling CityJSON integration with a PostgreSQL database
Project description
cjdb
CJDB is a set of tools enabling CityJSON integration with a PostgreSQL database.
Authors: Cynthia Cai, Lan Yan, Yitong Xia, Chris Poon, Siebren Meines, Leon Powalka
cj2pgsql
cjdb_api
Table of Contents
1. Data model
2. Installation & running
3. Local development
4. Local CLI development
1. Data model
For the underlying data model see model/README.md
Based on this model, there are 2 software components available:
cj2pgsql
cjdb_api
2. Installation & running
Using pip
pip install cjdb
It is recommended to install it in an isolated environment, because of fragile external library dependencies for CQL filter parsing.
Using the repository code
Another option is to clone the repository and build the CLI from the code. From repository root, run:
python3 -m build
Install the .whl file with pip:
pip3 install dist/*.whl
Using docker
Build:
docker build -t cjdb:latest .
Run:
docker run --rm -it cjdb cj2pgsql --help
To import some files, the -v
option is needed to mount our local file directory in the container.
docker run -v {MYDIRECTORY}:/data --rm -it --network=host cjdb cj2pgsql -H localhost -U postgres -d postgres -W postgres /data/5870_ext.jsonl
For instructions on running the software check specific READMEs.
3. Local development
Make sure pipenv is installed:
pip install pipenv
Create the environment:
pipenv install
4. Local CLI development
To build the CLI app (so that it can be called as a command line tool from anywhere):
- Sync the pipenv requirements with the setup.py file:
pipenv run pipenv-setup sync
- Create a venv just for testing the CLI build.
Note: This is not the pipenv/development environment.
virtualenv venv
- Activate environment (note: this is not the pipenv environment. This is a separate environment just to test the CLI build)
. venv/bin/activate
- Build the CLI:
python setup.py develop
- The cj2pgsql importer should now work as a command inside this environment:
cj2pgsql --help
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.