birdhousebuilder.recipe.postgres is a Buildout recipe to install and configure Postgres database with Anaconda. Postgres will be deployed as a Supervisor service.
The recipe is based on https://github.com/makinacorpus/makina.recipe.postgres.
This recipe is used by the Birdhouse project.
The recipe requires that Anaconda is already installed. It assumes that the default Anaconda location is in your home directory ~/anaconda. Otherwise you need to set the ANACONDA_HOME environment variable or the Buildout option anaconda-home.
It installs the postgresql package from a conda channel in a conda environment named birdhouse. The location of the birdhouse environment is .conda/envs/birdhouse. It deploys a Supervisor configuration for Postgres in ~/.conda/envs/birdhouse/etc/supervisor/conf.d/postgres.conf. Supervisor can be started with ~/.conda/envs/birdhouse/etc/init.d/supervisor start.
The Postgres database files are by default in ~/.conda/envs/birdhouse/var/lib/postgres.
The recipe depends on birdhousebuilder.recipe.conda and birdhousebuilder.recipe.supervisor.
The recipe supports the following options:
- anaconda-home
-
Buildout option with the root folder of the Anaconda installation. Default:
$HOME/anaconda. The default location can also be set with the environment variableANACONDA_HOME. Example:export ANACONDA_HOME=/opt/anacondaSearch priority is:
-
anaconda-homeinbuildout.cfg $ANACONDA_HOME$HOME/anaconda
-
- port
-
Port used for Postgres. Default: 5433.
- pgdata
-
path to the database files. Default:
~/.conda/envs/birdhouse/var/lib/postgres - initdb
-
Options for Postgres initialisation. Default:
--auth=trust - cmds
-
psqlcommands to setup your database schema and users.
The following example buildout.cfg installs Postgres with Anaconda:
[buildout]
parts = postgres
anaconda-home = /home/myself/anaconda
[postgres]
recipe = birdhousebuilder.recipe.postgres
port = 5433
cmds =
createuser -p 5433 --createdb --no-createrole --no-superuser --login demo
createdb -p 5433 --owner=demo demoAfter installing with Buildout start the Postgres service with:
$ cd /home/myself/.conda/envs/birdhouse
$ etc/init.d/supervisord start # start|stop|restart
$ bin/supervisorctl status # check that postgres is running