In the last article from the apache age series, we've been able to successfully install the apache age extension through installation directly from the source code on github. But you can also use the extension on your local machine through docker, this way you get to isolate the extension only on the docker container you spin up, and also wouldn't have to bother about barely installing a lot of dependencies on your local machine.
The pre-requisites remain the same which is having a compatible version(11) of postgreSQL installed (check here for guide) and also having docker installed on your local machine.
Note: It's recommended to use a linux environment.
To install the age extension via docker is very easy. Once you have your pre-requisites installed follow this steps:
1. Pull the apache/age image from docker repository
docker pull apache/age
This may take several minutes, based on your internet connectivity.
2. Run the apache/age container
docker run \ --name myPostgresDb \ -p 5455:5432 \ -e POSTGRES_USER=postgresUser \ -e POSTGRES_PASSWORD=postgresPW \ -e POSTGRES_DB=postgresDB \ -d \ apache/age
You can change the following names (myPostgresDb, postgresUser, postgresPW, postgresDB) to suit your preference but make sure you remember them.
3. Confirm the container is running
After running the command in the previous steps leaving all the arguments as they are. I can now confirm my docker container is running
ceejay@ceejay:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6ea0a9f55c3e apache/age "docker-entrypoint.s…" 6 seconds ago Up 4 seconds 0.0.0.0:5455->5432/tcp, :::5455->5432/tcp myPostgresDb ceejay@ceejay:~$
4. Connect to the postgres cli running on the container
ceejay@ceejay:~$ docker exec -it myPostgresDb bash root@6ea0a9f55c3e:/# psql -d postgresDB -U postgresUser psql (11.19 (Debian 11.19-1.pgdg100+1), server 11.13 (Debian 11.13-1.pgdg100+1)) Type "help" for help. postgresDB=#
docker exec connects to the running container, and the
psql command connects to the postgres cli running on the container, the
-d flag allows you to specify the database name, and the
-U flags allows you to specify the username.
note: Remember to fill in the arguments according to what you set previously.
5. Load the Age extension
Now that we've successfully connected to the psql cli, we can now load in the age extension and also adding ag_catalog to search_path
postgresDB=# LOAD 'age'; LOAD postgresDB=# SET search_path = ag_catalog, "$user", public; SET postgresDB=#
Now we can start creating our graphs and running cypher queries.
With the aid of docker you can run the age extension in isolation, anytime you need to access the extension all you need to do is connect to the postgres cli on the container as shown earlier and run your queries. See you in the next episode!.