If you are beginning your journey with Senzing, please start with Senzing Quick Start guides.
You are in the Senzing Garage where projects are "tinkered" on. Although this GitHub repository may help you understand an approach to using Senzing, it's not considered to be "production ready" and is not considered to be part of the Senzing product. Heck, it may not even be appropriate for your application of Senzing!
Initializes a PostgreSQL database for use with Senzing.
The init-postgresqll.py python script is a "run-to-completion" job that initializes a PostgreSQL database for use with Senzing. It create the Senzing database schema and populates the database with an initial Senzing configuration.
The senzing/init-postgresql
Docker image is a wrapper for use in Docker formations (e.g. docker-compose, kubernetes).
To see all of the subcommands, run:
$ ./init-postgresql.py
usage: init-postgres.py [-h] {mandatory,sleep,version,docker-acceptance-test} ...
Add description. For more information, see https://github.com/senzing-garage/init-postgres
positional arguments:
{mandatory,sleep,version,docker-acceptance-test}
Subcommands [SENZING_SUBCOMMAND]:
mandatory Perform mandatory initialization tasks.
sleep Do nothing but sleep. For Docker testing.
version Print version of program.
docker-acceptance-test
For Docker acceptance testing.
optional arguments:
-h, --help show this help message and exit
- Preamble
- Expectations
- Demonstrate using Docker
- Demonstrate using docker-compose
- Configuration
- License
- References
At Senzing, we strive to create GitHub documentation in a "don't make me think" style. For the most part, instructions are copy and paste. Whenever thinking is needed, it's marked with a "thinking" icon 🤔. Whenever customization is needed, it's marked with a "pencil" icon ✏️. If the instructions are not clear, please let us know by opening a new Documentation issue describing where we can improve. Now on with the show...
- 🤔 - A "thinker" icon means that a little extra thinking may be required. Perhaps there are some choices to be made. Perhaps it's an optional step.
- ✏️ - A "pencil" icon means that the instructions may need modification before performing.
⚠️ - A "warning" icon means that something tricky is happening, so pay attention.
- Space: This repository and demonstration require 6 GB free disk space.
- Time: Budget 15 minutes to get the demonstration up-and-running, depending on CPU and network speeds.
- Background knowledge: This repository assumes a working knowledge of:
-
✏️ Specify database connection information. Example:
export DATABASE_PROTOCOL=postgresql export DATABASE_USERNAME=postgres export DATABASE_PASSWORD=postgres export DATABASE_HOST=example.com export DATABASE_PORT=5432 export DATABASE_DATABASE=G2
-
🤔 Tip: Do not set
DATABASE_HOST
tolocalhost
nor127.0.0.1
as that assumes the database is inside the Docker container. If the database is running on the local system, here's a method of finding the IP address of the local system. Example:export DATABASE_HOST=$(curl --silent https://raw.githubusercontent.com/Senzing/knowledge-base/main/gists/find-local-ip-address/find-local-ip-address.py | python3 -)
-
Construct Database URL. Example:
export SENZING_DATABASE_URL="${DATABASE_PROTOCOL}://${DATABASE_USERNAME}:${DATABASE_PASSWORD}@${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_DATABASE}"
-
Run Docker container. Example:
sudo --preserve-env docker run \ --env SENZING_DATABASE_URL \ --rm \ senzing/init-postgresql mandatory
-
Alternative: Run Docker container. Example:
sudo --preserve-env docker run \ --env SENZING_DATABASE_URL \ --env SENZING_SUBCOMMAND=mandatory \ --rm \ senzing/init-postgresql
-
✏️ Specify a new directory to hold demonstration artifacts on the local host. Example:
export SENZING_VOLUME=~/my-senzing
⚠️ macOS - File sharing must be enabled forSENZING_VOLUME
.⚠️ Windows - File sharing must be enabled forSENZING_VOLUME
.
-
Set environment variables. Example:
export PGADMIN_DIR=${SENZING_VOLUME}/pgadmin export POSTGRES_DIR=${SENZING_VOLUME}/postgres
-
Create directories. Example:
mkdir -p ${PGADMIN_DIR} ${POSTGRES_DIR}
-
Get versions of Docker images. Example:
curl -X GET \ --output ${SENZING_VOLUME}/docker-versions-stable.sh \ https://raw.githubusercontent.com/Senzing/knowledge-base/main/lists/docker-versions-stable.sh source ${SENZING_VOLUME}/docker-versions-stable.sh
-
Download
docker-compose.yaml
and Docker images. Example:curl -X GET \ --output ${SENZING_VOLUME}/docker-compose.yaml \ "https://raw.githubusercontent.com/Senzing/init-postgresql/main/docker-compose.yaml" cd ${SENZING_VOLUME} sudo --preserve-env docker-compose pull
-
Bring up Senzing docker-compose stack. Example:
cd ${SENZING_VOLUME} sudo --preserve-env docker-compose up
-
Allow time for the components to be downloaded, start, and initialize.
- There will be errors in some Docker logs as they wait for dependent services to become available.
docker-compose
isn't the best at orchestrating Docker container dependencies.
- There will be errors in some Docker logs as they wait for dependent services to become available.
Configuration values specified by environment variable or command line parameter.
- SENZING_CONFIGURATION_MODIFICATIONS
- SENZING_DATABASE_URL
- SENZING_DEBUG
- SENZING_ENGINE_CONFIGURATION_JSON
- SENZING_INPUT_SQL_URL
- SENZING_SUBCOMMAND
View license information for the software container in this Docker image. Note that this license does not permit further distribution.
This Docker image may also contain software from the Senzing GitHub community under the Apache License 2.0.
Further, as with all Docker images, this likely also contains other software which may be under other licenses (such as Bash, etc. from the base distribution, along with any direct or indirect dependencies of the primary software being contained).
As for any pre-built image usage, it is the image user's responsibility to ensure that any use of this image complies with any relevant licenses for all software contained within.
- Development
- Errors
- Examples
- Related artifacts: