Skip to content

# Database

AyaNova uses PostgreSQL as it's database server in all configurations, no other database is supported.

## Default connection string

If no connection string is specified AyaNova will use a default value: "Server=localhost;".

## Setting the connection string

AyaNova expects the connection string to be provided by a config.json property, environment variable or command line parameter named:

`AYANOVA_DB_CONNECTION`

Example config.json entry

    {
      ...other properties...
      "AYANOVA_DB_CONNECTION": "Server=192.168.1.56;Database=MyAyaNovaDB;"
    }

(Note: if any back slashes are in the db connection string they need to be doubled in config.json file or the server will fail to start)

Example command line parameter:

`ayanova.exe --AYANOVA_DB_CONNECTION="Server=localhost;Database=MyAyaNovaDB;"`

Example environment variable:

Windows:

`set "AYANOVA_DB_CONNECTION=Server=localhost;Database=MyAyaNovaDB;"`

Linux:

`export AYANOVA_DB_CONNECTION="Server=localhost;Database=MyAyaNovaDB;"`

## Default database

If no default database is specified AyaNova will use the default value: "AyaNova".

## Special characters could cause backup to fail

Be careful about using special characters for your Postgres connection string, particularly the password and database name, we've encountered issues with the automatic internal backup failing due to a @ or $ symbol in the password. On some platforms when AyaNova attempts to run the backup utility it may fail if that operating system does not support certain special characters found in the password as they may interfere with the "shell" command called to perform the backup.

## Optional connection string parameters

There are optional connection string parameters available for use with PostgreSQL to control many aspects of the PostgreSQL connection including timeouts, the type of security protocols used etc.

Available connection string parameters to be used with AyaNova are documented on the Npgsql Connection String Parameters page. (Npgsql is the data provider programming library AyaNova uses to communicate with PostgreSQL)