Sometimes I need to work with graph databases on Windows, Neo4j is heavy and I prefer PostgreSQL and PGVector as a whole solution. Then Apache AGE is a good choice.
However, Apache AGE does not provide Windows support, the tutorials are based on WSL. I want to make it simple for Windows users to use the Apache AGE Along with PostgreSQL and PGVector.
This project is a fork of the Apache AGE project. To provide Windows distribution for the Apache AGE project. It will provide a binary package for Windows, along with PostgreSQL 17 and PGVector 0.8.0.
Please navigate to the release page and download:
pgsql17-mingw64-x86_64-min.7z
: Minimal runnable package, without ssl or icu support etc. (The package compiled with those dependencies are not included)pgsql17-mingw64-x86-dependencies.7z
: Dependencies to enable the PG with icu, ssl, lz4, zstd etc. You can extract the files to the PG folder, or just copy those DLL files.pgAdmin4-8.14-windows-x86_64.7z
:pgAdmin 4
v8.14 for Windows.
- Download the pre-compiled package from the release page.
- Your folder structure might be look like this
c:\swdtools\PostgreSQL |- data |- pgAdmin4 |- pgsql17-dependencies |- pgsql17-mingw
- Initialize the database:
set PATH=C:\swdtools\PostgreSQL\pgsql17-mingw\bin;C:\swdtools\PostgreSQL\pgsql17-dependencies\bin;%PATH% initdb -D C:\swdtools\PostgreSQL\data
- Prepare some start / stop script like this:
- start-pg-server.bat
@echo off set PGDIR=%~dp0 set PATH_O=%PATH% set PATH=%PGDIR%\pgsql17-mingw\bin;%PGDIR%\pgsql17-dependencies\bin;%PATH% pg_ctl -D %PGDIR%\data -l %PGDIR%\pg.log start set PATH=%PATH_O% echo on
- stop-pg-server.bat
@echo off set PGDIR=%~dp0 set PATH_O=%PATH% set PATH=%PGDIR%\pgsql17-mingw\bin;%PGDIR%\pgsql17-dependencies\bin;%PATH% pg_ctl -D %PGDIR%\data stop set PATH=%PATH_O% echo on @pause
- Install MSYS2-MINGW64, and install the following packages:
pacman -Syu pacman --needed -S git mingw-w64-x86_64-gcc base-devel bison flex mingw-w64-x86_64-minizip mingw-w64-x86_64-zlib mingw-w64-x86_64-icu pacman -S mingw64/mingw-w64-x86_64-openssl
- Install PostgreSQL
pacman -S mingw-w64-x86_64-postgresql
- Checkout the source and build:
git clone --branch "PG17/Windows" https://github.com/ShanGor/apache-age-windows.git
cd apache-age-windows
make install
- If failed at cypher_gram_def.h, change below VARIABLE names:
STRING -> CG_STRING
CHAR -> CG_CHAR
DELETE -> CG_DELETE
OPTIONAL -> CG_OPTIONAL
IN -> CG_IN
You can improve ongoing efforts or initiate new ones by sending pull requests to this repository. Also, you can learn from the code review process, how to merge pull requests, and from code style compliance to documentation by visiting the Apache AGE official site - Developer Guidelines. Send all your comments and inquiries to the user mailing list, users@age.apache.org.