{"id":14973833,"url":"https://github.com/postgresapp/postgresapp","last_synced_at":"2026-02-26T16:22:51.026Z","repository":{"id":2934775,"uuid":"3946572","full_name":"PostgresApp/PostgresApp","owner":"PostgresApp","description":"The easiest way to get started with PostgreSQL on the Mac","archived":false,"fork":false,"pushed_at":"2025-05-03T21:26:10.000Z","size":38794,"stargazers_count":7527,"open_issues_count":147,"forks_count":391,"subscribers_count":99,"default_branch":"master","last_synced_at":"2025-05-03T22:24:14.180Z","etag":null,"topics":["postgis","postgres"],"latest_commit_sha":null,"homepage":"https://postgresapp.com","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PostgresApp.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,"zenodo":null}},"created_at":"2012-04-06T03:38:37.000Z","updated_at":"2025-05-03T21:26:13.000Z","dependencies_parsed_at":"2024-01-02T21:54:23.599Z","dependency_job_id":"3bef8356-130c-4cfe-8e4a-3cc8325756ae","html_url":"https://github.com/PostgresApp/PostgresApp","commit_stats":{"total_commits":1718,"total_committers":63,"mean_commits":27.26984126984127,"dds":0.5634458672875436,"last_synced_commit":"9b156e81c5ae1ad92c1918fd8ee9c7f843829d26"},"previous_names":[],"tags_count":192,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PostgresApp%2FPostgresApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PostgresApp%2FPostgresApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PostgresApp%2FPostgresApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PostgresApp%2FPostgresApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PostgresApp","download_url":"https://codeload.github.com/PostgresApp/PostgresApp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253764664,"owners_count":21960603,"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":["postgis","postgres"],"created_at":"2024-09-24T13:49:29.770Z","updated_at":"2026-02-26T16:22:51.013Z","avatar_url":"https://github.com/PostgresApp.png","language":"Makefile","readme":"# Postgres.app\n\nThe easiest way to run PostgreSQL on your Mac\n\n- Includes everything you need to get started with PostgreSQL\n- Comes with a pretty GUI to start / stop servers\n- Run multiple versions of PostgreSQL simultaneously\n\n## Download\n\nYou can download recent versions of Postgres.app from the [Postgres.app website](http://postgresapp.com/).\n\nOlder versions and pre-releases are available in the releases section on GitHub.\n\n## Documentation\n\nDocumentation is available at [http://postgresapp.com/documentation](http://postgresapp.com/documentation), as well as from the \"Open Documentation\" menu item in Postgres.app.\n\n## What's Included?\n\n- [PostgreSQL](http://www.postgresql.org/)\n- [PostGIS](http://postgis.net/)\n- [pgrouting](https://pgrouting.org) (PostgreSQL 15 and higher)\n- [wal2json](https://github.com/eulerto/wal2json)\n- [pldebugger](https://github.com/EnterpriseDB/pldebugger)\n- [pgvector](https://github.com/pgvector/pgvector) (PostgreSQL 15 and higher)\n- [plv8](https://github.com/plv8/plv8) (PostgreSQL 13 and lower)\n- [pljs](https://github.com/plv8/pljs) (PostgreSQL 14 and higher)\n\n## How To Build\n\nPostgres.app consists of separate parts:\n\n1) The PostgreSQL binaries, including extensions and a bunch of command line tools. \n   You can find the binaries in /Applications/Postgres.app/Contents/Versions\n\n2) The Postgres.app user interface, written in Swift.\n   This is the native Mac app that you see when you double click Postgres.app in the Finder.\n\nFor compatibility reasons we build the different parts on different versions of macOS.\n\n- the binaries for PostgreSQL 13 are built on macOS 10.15 with Xcode 11.7\n\n- the binaries for PostgreSQL 14 are built on macOS 11 with Command Line Tools for Xcode 12.5\n\n- the binaries for PostgreSQL 15 - 16 are built on macOS 12 with Command Line Tools for Xcode 14\n\n- the binaries for PostgreSQL 17 -18 are built on macOS 14 with Command Line Tools for Xcode 15.3\n\n- the GUI is built on macOS 14 with Xcode 15.0.1\n\nIt is of course possible to use other versions of macOS / Xcode (see details below), but those are the environments we use.\n\n### Building the GUI\n\nIf you want to work on the user interface only, you don't have to re-compile the binaries yourself.\nBy default, the buildscript for Postgres.app just copies the binaries from /Applications/Postgres.app/Contents/Versions\n\nSo just make sure you have a copy of Postgres.app in your applications folder.\nOpen the XCode file and start hacking!\n\nTools required for building the GUI:\n\n- Xcode 11 or later (Swift 5 support is required)\n\n### Building the Binaries\n\nIf you want to build your own versions of all the PostgreSQL binaries, you have slightly more work to do.\n\nThe directories src-xx each contain a makefile that downloads and builds all the binaries.\nIf you have all the prerequisites installed (see below), you can just type `make`.\n\nThe makefile will download and build many gigabytes of sources. The default target (`all`) builds postgresql, postgis, wal2json, pldebugger, \nplv8 (till PostgreSQL 13), pgvector (starting with PostgreSQL 15) and pgrouting (starting with PostgreSQL 15).\nPostGIS and especially plv8 with all their dependencies take a long time to build, so if you don't need them, type `make postgresql` instead.\n\nThe makefile will install all products in `/Applications/Postgres.app/Contents/Versions/xx` (xx is the major version of PostgreSQL).\nSo for best results, make sure that directory is empty before starting the build.\n\nIf you want to change the version number of any of the dependencies, edit the makefile (all version numbers are specified at the top).\n\nYou can use the `-j` option (eg. `make -j 3 postgresql`) for parallel builds.\nMy recommendation is to use one more job than the number of logical processors you have.\nSince my macOS 10.12 VM is limited to 2 virtual CPUs, I use `-j 3`.\nHowever, parallel builds make debugging problems a lot harder, so don't use them when something doesn't work.\n\nAlways check the exit code of make to see if any errors occurred, eg. `make -j 3 || echo \"Build failed with exit code $?\"` \n\n### Prerequisites for building the binaries\n\nAt the very least, you need the following:\n\n- Xcode\n- Developer Tools (install with `xcode-select --install`)\n- Python from [python.org](https://www.python.org/downloads/macos/) in version 3.8.x (PostgreSQL 13), 3.9.x (PostgreSQL 14), 3.11.x (PostgreSQL 15), 3.12.x (PostgreSQL 16), 3.13.x (PostgreSQL 17) or \u003e=3.9.x (PostgreSQL \u003e=18)\n\nFor building PostGIS and its dependencies, you also need\n\n- autoconf\n- automake\n- pkgconfig (when building GDAL 3.0.0 or later)\n- libtool\n- cmake (when building universal binaries - PostgreSQL 14 or later)\n\nBy default, PostgreSQL is built with documentation. To build the PostgreSQL 13 docs, you need these packages (see https://www.postgresql.org/docs/current/docguide-toolsets.html for details):\n\n- docbook-xml-4.5\n- docbook-xsl-nons\n- fop\n\nThe quickest way to install all the dependencies is with MacPorts. Install MacPorts, then type:\n\n    sudo port -N install autoconf automake pkgconfig libtool docbook-xml-4.5 docbook-xsl-nons fop\n\n(The `-N` flag tells Macports to install required dependencies without asking)\n\nOlder versions required a different set of packages for building the docs, please see the specific versions of the documentation page https://www.postgresql.org/docs/current/docguide-toolsets.html for details.\n\nIt is also possible to install those using homebrew, at least for PostgreSQL 14 and later:\n\n    brew install automake cmake docbook-xsl m4 pkg-config    \n\n## Under the Hood\n\nPostgres.app bundles the PostgreSQL binaries inside the application package. When you first start Postgres.app, here's what it does:\n\n- Initialise a database cluster: `initdb -D DATA_DIRECTORY -U postgres --encoding=UTF-8 --locale=en_US.UTF-8`. Starting with PostgreSQL 15 additionally: `--locale-provider=icu --icu-locale=en-US --data-checksums`\n- Start the server: `pg_ctl start -D DATA_DIRECTORY --wait --log=DATA_DIRECTORY/postgres-server.log --options=\"-p PORT\"`\n- Create a superuser: `createuser -U postgres -p PORT --superuser USERNAME`\n- Create a user database: `createdb USERNAME`\n\nOn subsequent app launches, Postgres.app only starts the server.\n\nThe default `DATA_DIRECTORY` is `/Users/USERNAME/Library/Application Support/Postgres/var-xx`\n\nNote that Postgres.app runs the server as your user, unlike other installations which might create a separate system user named `postgres`.\n\nWhen you stop a server the following command is performed. The same happens for all running servers if quit Postgres.app using the menubar icon:\n\n- `pg_ctl stop --mode=fast --wait -D DATA_DIRECTORY`\n\n## Command Line Utilities\n\nPostgres.app also includes useful command line utilities (note: this list may be outdated):\n\n- PostgreSQL: `clusterdb` `createdb` `createlang` `createuser` `dropdb` `droplang` `dropuser` `ecpg` `initdb` `oid2name` `pg_archivecleanup` `pg_basebackup` `pg_config` `pg_controldata` `pg_ctl` `pg_dump` `pg_dumpall` `pg_receivexlog` `pg_resetxlog` `pg_restore` `pg_standby` `pg_test_fsync` `pg_test_timing` `pg_upgrade` `pgbench` `postgres` `postmaster` `psql` `reindexdb` `vacuumdb` `vacuumlo`\n- PROJ.4: `cs2cs` `geod` `invgeod` `invproj` `nad2bin` `proj`\n- GDAL: `gdal_contour` `gdal_grid` `gdal_rasterize` `gdal_translate` `gdaladdo` `gdalbuildvrt` `gdaldem` `gdalenhance` `gdalinfo` `gdallocationinfo` `gdalmanage` `gdalserver` `gdalsrsinfo` `gdaltindex` `gdaltransform` `gdalwarp` `nearblack` `ogr2ogr` `ogrinfo` `ogrtindex` `testepsg`\n- PostGIS: `pgsql2shp` `raster2pgsql` `shp2pgsql`\n\nSee [the documentation](http://postgresapp.com/documentation) for more info.\n\n## Using the pl/pgsql Debugger\n\nFirst, you'll need to adjust the configuration file (`postgresql.conf`) to preload the debugger extension. Add the following line:\n\n```\nshared_preload_libraries = 'plugin_debugger'\n```\n\nAfter you've saved this file, restart the server. You'll need to load the debugger extension into the database you wish to debug using:\n\n```\nCREATE EXTENSION pldbgapi;\n```\n\nDebugging requires that you are a superuser. Please refer to the [documentation](https://www.pgadmin.org/docs/pgadmin4/latest/debugger.html) for further information. This requires that you use a supported client, such as [PgAdmin 4](https://www.pgadmin.org/). The official documentation for the module can be accessed [here](https://github.com/EnterpriseDB/pldebugger/blob/master/README.pldebugger).\n\n## Contact\n\nIf you find a bug, please [open an issue](https://github.com/PostgresApp/PostgresApp/issues).\n\nPostgres.app is maintained by [Jakob Egger](https://github.com/jakob) and [Tobias Bussmann](https://github.com/tbussmann).\n\n\n## License\n\nPostgres.app is released under the PostgreSQL License. See LICENSE for additional information.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpostgresapp%2Fpostgresapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpostgresapp%2Fpostgresapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpostgresapp%2Fpostgresapp/lists"}