Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Postgraas is a super simple PostgreSQL-as-a-service

Project Description

Postgraas is a super simple PostgreSQL-as-a-service

What is Postgraas?

Postgraas offers CRUD operations for complete PostgreSQL database instances via a simple REST api. The database instances are docker containers and the api server is a few hundred LoC Flask application. It is of not meant as a production ready solution, but more a proof-of-concept to spread the idea of creating “as-a-service” services easily yourself and should inspire you to start working on your own cloud infrastructure today. But in fact, it proofs the concept very well and it turned out to be super useful for delivering a PostgreSQL instance if you need one fast: for integration tests, for playing around with fancy ShowHN projects or other experiments. The CRUD management via REST api is of course also a necessary prequisite for building an automated continuous delivery pipeline for a modern software project.

Installation

You can find detailed instructions in the docs

Install via pip:

pip install postgraas_server

And start the wsgi api server for example with gunicorn:

gunicorn -w 4 -b 0.0.0.0:8080 postgraas_server.postgraas_api:app

Usage

We need to send all the required parameters for the creation as an http request. This is quite convenient by creating a file e.g. my_postgraas.json:

{
    "postgraas_instance_name": "my_postgraas",
    "db_name": "my_db",
    "db_username": "db_user",
    "db_pwd": "secret"
}

and making a POST request to the collection resource with curl:

curl -H "Content-Type: application/json" -X POST --data @my_postgraas.json http://localhost:8080/api/v2/postgraas_instances

now your instance is created and as a response you get the details of your instance:

{
     "postgraas_instance_id": 1,
     "container_id": "193f0d94d49fa26626fdbdb583e9453f923468b01eac59207b4852831a105c03",
     "db_pwd": "secret",
     "host": "not imlemented yet",
     "db_name": "my_db",
     "db_username": "db_user",
     "port": 54648
}

We are now able to connect to the database for exaple with psql:

psql -h localhost -p 54648 -U db_user my_db

Awesome, isn’t it?

Release History

Release History

History Node

1.0.0b3

History Node

1.0.0b2

History Node

1.0.0b1

This version
History Node

0.1.11

History Node

0.1.10

History Node

0.1.9

History Node

0.1.8

History Node

0.1.7

History Node

0.1.6

History Node

0.1.5

History Node

0.1.4

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
postgraas_server-0.1.11-py2.py3-none-any.whl (11.9 kB) Copy SHA256 Checksum SHA256 py2.py3 Wheel Jan 7, 2017
postgraas_server-0.1.11.tar.gz (27.8 kB) Copy SHA256 Checksum SHA256 Source Jan 7, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting