postgresapp.com Open in urlscan Pro
2606:50c0:8002::153  Public Scan

Submitted URL: http://postgresapp.com/
Effective URL: https://postgresapp.com/
Submission: On December 24 via api from US — Scanned from DE

Form analysis 0 forms found in the DOM

Text Content

POSTGRES.APP


THE EASIEST WAY TO GET STARTED WITH POSTGRESQL ON THE MAC

 * Introduction
 * Downloads
 * Documentation
 * GitHub 6948 Stars

 * en
 * de

Postgres.app is a full-featured PostgreSQL installation packaged as a standard
Mac app. It includes everything you need to get started, and we’ve even included
the popular extension PostGIS for geo data.

Postgres.app has a beautiful user interface and a convenient menu bar item. You
never need to touch the command line to use it – but of course we do include all
the necessary command line tools and header files for advanced users.

Postgres.app can install minor updates automatically, so you get bugfixes as
soon as possible.


INSTALLING POSTGRES.APP

 * Download   ➜   Move to Applications folder   ➜   Double Click
   
   If you don't move Postgres.app to the Applications folder, some features may
   not work (more info)

 * Click "Initialize" to create a new server

 * Configure your $PATH to use the included command line tools (optional):
   
   sudo mkdir -p /etc/paths.d &&
   echo /Applications/Postgres.app/Contents/Versions/latest/bin | sudo tee /etc/paths.d/postgresapp

Done! You now have a PostgreSQL server running on your Mac with these default
settings:

Host localhost Port 5432 User your system user name Database same as user
Password none Connection URL postgresql://localhost

To connect with psql, double click a database. To connect directly from the
command line, type psql. If you’d rather use a graphical client, see below.

NOTE: These instructions assume that you’ve never installed PostgreSQL on your
Mac before. If you have previously installed PostgreSQL using homebrew,
MacPorts, the EnterpriseDB installer, consider removing other PostgreSQL
installations first. We also have instructions for upgrading from older versions
of Postgres.app.


GRAPHICAL CLIENTS

Postgres.app includes psql, a versatile command line client for PostgreSQL. But
it’s not the only option; there are plenty of great graphical clients available
for PostgreSQL. Two popular tools are:

 * pgAdmin 4
 * Postico

pgAdmin 4 is a feature rich open source PostgreSQL client. It has support for
almost every feature in PostgreSQL. The only downside is that the
cross-plattform UI really doesn’t live up to the expectations of a native Mac
app.

Postico on the other hand, is a very modern Mac app. It’s made by the same
people that maintain Postgres.app, and we think you’ll like it! We put a lot of
effort into making it a joy to use. However, it doesn’t have the extensive
feature set of pgAdmin, and it’s a commercial app rather than open source.

Aside from those two options, there are a lot more to choose from! Check the
documentation for a list of amazing Mac apps for PostgreSQL.


HOW TO CONNECT

After your PostgreSQL server is up and running, you’ll probably want to connect
to it from your application. Here’s how to connect to PostgreSQL from popular
programming languages and frameworks:

PHP

To connect from PHP, make sure that it supports PostgreSQL. The version included
with macOS doesn't support PostgreSQL. We recommend MAMP for an easy way to
install a current version of PHP that works.

You can use PDO (object oriented):

<?php
$db = new PDO('pgsql:host=localhost');
$statement = $db->prepare("SELECT datname FROM pg_database");
$statement->execute();
while ($row = $statement->fetch()) {
    echo "<p>" . htmlspecialchars($row["datname"]) . "</p>\n";
}
?>

Or the pg_connect() functions (procedural):

<?php
$conn = pg_connect("host=localhost");
$result = pg_query($conn, "SELECT datname FROM pg_database");
while ($row = pg_fetch_row($result)) {
    echo "<p>" . htmlspecialchars($row[0]) . "</p>\n";
}
?>

Python

To connect to a PostgreSQL server with Python, please first install the psycopg2
library:


pip install psycopg2
		


DJANGO

In your settings.py, add an entry to your DATABASES setting:


DATABASES = {
    "default": {
        "ENGINE": "django.db.backends.postgresql_psycopg2",
        "NAME": "[YOUR_DATABASE_NAME]",
        "USER": "[YOUR_USER_NAME]",
        "PASSWORD": "",
        "HOST": "localhost",
        "PORT": "",
    }
}
		


FLASK

When using the Flask-SQLAlchemy extension you can add to your application code:


from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://localhost/[YOUR_DATABASE_NAME]'
db = SQLAlchemy(app)
		


SQLALCHEMY


from sqlalchemy import create_engine
engine = create_engine('postgresql://localhost/[YOUR_DATABASE_NAME]')
		

Ruby

To install the pg gem, make sure you have set up your $PATH correctly (see
Command-Line Tools), then execute the following command:

sudo ARCHFLAGS="-arch x86_64" gem install pg


RAILS

In config/database.yml, use the following settings:


development:
    adapter: postgresql
    database: [YOUR_DATABASE_NAME]
    host: localhost
		


SINATRA

In config.ru or your application code:


set :database, "postgres://localhost/[YOUR_DATABASE_NAME]"
		


ACTIVERECORD

Install the activerecord gem and require 'active_record', and establish a
database connection:


ActiveRecord::Base.establish_connection("postgres://localhost/[YOUR_DATABASE_NAME]")
		


DATAMAPPER

Install and require the datamapper and do_postgres gems, and create a database
connection:


DataMapper.setup(:default, "postgres://localhost/[YOUR_DATABASE_NAME]")
		


SEQUEL

Install and require the sequel gem, and create a database connection:


DB = Sequel.connect("postgres://localhost/[YOUR_DATABASE_NAME]")
		

Java
 1. Download and install the PostgreSQL JDBC driver
 2. Connect to the JDBC URL jdbc:postgresql://localhost

For more information see the official PostgreSQL JDBC documentation.

C

libpq is the native C client library for connecting to PostgreSQL. It's really
easy to use:

#include <libpq-fe.h>
int main() {
    PGconn *conn = PQconnectdb("postgresql://localhost");
    if (PQstatus(conn) == CONNECTION_OK) {
        PGresult *result = PQexec(conn, "SELECT datname FROM pg_database");
        for (int i = 0; i < PQntuples(result); i++) {
            char *value = PQgetvalue(result, i, 0);
            if (value) printf("%s\n", value);
        }
        PQclear(result);
    }
    PQfinish(conn);
}

Now compile the file with clang and run it:

clang main.c -I$(pg_config --includedir) -L$(pg_config --libdir) -lpq
./a.out

Swift

You can just use the C API in Swift! First include libpq in your bridging
header:

#import <libpq-fe.h>

Then make sure to link with libpq.

On iOS, you'll need to build libpq yourself.

On macOS you can use the system provided libpq (does not support SSL) or use
libpq provided by Postgres.app by adding the following build settings:

Other Linker Flags -lpq Header Search Paths
/Applications/Postgres.app/Contents/Versions/latest/include Library Search Paths
/Applications/Postgres.app/Contents/Versions/latest/lib

Now you can use the libpq C library to connect to PostgreSQL:

let conn = PQconnectdb("postgresql://localhost".cString(using: .utf8))
if PQstatus(conn) == CONNECTION_OK {
    let result = PQexec(conn, "SELECT datname FROM pg_database WHERE datallowconn")
    for i in 0 ..< PQntuples(result) {
        guard let value = PQgetvalue(result, i, 0) else { continue }
        let dbname = String(cString: value)
        print(dbname)
    }
    PQclear(result)
}
PQfinish(conn)


SUPPORT

We have a list of common problems in the troubleshooting section in the
documentation.

For general questions concerning PostgreSQL, have a look at the official
PostgreSQL documentation.

If you have a question concerning Postgres.app that is not answered by the
Postgres.app documentation, please open an issue on GitHub.

When reporting bugs, let us know which version of Postgres.app & macOS you are
using, and be sure to include detailed error messages, even if your issue seems
similar to another one.


LICENSE

Postgres.app and PostgreSQL are released under the PostgreSQL License. The
released binaries also include extensions and dependencies that are licensed
under various open-source licences.

Postgres.app is maintained by Jakob Egger and Tobias Bussmann. It was originally
created by Mattt Thompson.

Application Utility PostgreSQL macOS macOS 10.10+
 * Follow @PostgresApp
 * Find us on GitHub
 * Do you have suggestions for improving the docs? edit this page