This section describes the process for converting a standalone PostgreSQL instance into a Patroni cluster.
To deploy a Patroni cluster without using a pre-existing PostgreSQL instance, see Running and Configuring instead.
Procedure
A Patroni cluster can be started with a data directory from a single-node PostgreSQL database. This is achieved by following closely these steps:
- Manually start PostgreSQL daemon
- Create Patroni superuser and replication users as defined in the authentication section of the Patroni configuration. If this user is created in SQL, the following queries achieve this:
- 
          Start Patroni (e.g.
          patroni /etc/patroni/patroni.yml). It automatically detects that PostgreSQL daemon is already running but its configuration might be out-of-date.
- 
          Ask Patroni to restart the node with
          patronictl restart cluster-name node-name.
FAQ
- During Patroni startup, Patroni complains that it cannot bind to the PostgreSQL port.
         You need to verify
         
          
           listen_addresses
          
         
         and
         
          
           port
          
         
         in
         
          
           postgresql.conf
          
         
         and
         
          
           postgresql.listen
          
         
         in
         
          
           patroni.yml
          
         
         . Don’t forget that
         
          
           pg_hba.conf
          
         
         should allow such access.
        
- 
          After asking Patroni to restart the node, PostgreSQL displays the error message
          could not open configuration file "/etc/postgresql/10/main/pg_hba.conf": No such file or directory
         It can mean various things depending on how you manage PostgreSQL configuration. If you specified
         
          postgresql.config_dir
         
         , Patroni generates the
         
          
           pg_hba.conf
          
         
         based on the settings in the
         
          
           bootstrap
          
         
         section only when it bootstraps a new cluster. In this scenario the
         
          
           PGDATA
          
         
         was not empty, therefore no bootstrap happened. This file must exist beforehand.