Configuration

The Pyrseas utilities allow you to configure various options through a number of YAML specification files, none of which are required–but the system configuration file is provided by the normal installation.

If a configuration parameter is specified in more than one file, the latter file in the list of files below overrides any earlier specification. Any configuration item specified on the command line takes precedence over any such item in a configuration file.

Configuration File Name

The default configuration file name is config.yaml. If desired, you can override this with the environment variable PYRSEAS_CONFIG_FILE, but be aware that this will affect all three levels below.

System Configuration

The system configuration file is distributed with Pyrseas and is normally installed in the pyrseas library directory.

If desired, you can override this using the PYRSEAS_SYS_CONFIG environment variable. This can be defined as a full path, including a file name, or a directory location, in which case the default file name as mentioned above under Configuration File Name will be appended to the path.

Currently, this file includes specifications for functions, triggers and other objects used by the dbaugment utility. It also includes the default directory path for storing multiple YAML files in a VCS repository, and the path to data files for use by the data import and export facilities.

User Configuration

Each user can have his or her own configuration file. The default location for this depends on the platform. Under Linux, BSD, OS/X and other Unix variants, place the file under your home directory, in the subdirectory .config/pyrseas/. Under Windows, put the file in %APPDATA%\pyrseas\.

You can override the location of the user configuration file using the PYRSEAS_USER_CONFIG environment variable. This can be defined as a full path, including a file name, or a directory location, in which case the default file name as mentioned above under Configuration File Name will be appended to the path.

If present, the user configuration file will be merged with the system configuration.

It is recommended that the user configuration file only be used for non-project-specific purposes. For example, if you frequently use Pyrseas against a remote database or on a non-standard port, you can specify the host or port in your personal configuration file.

Repository Configuration

A configuration file can be placed in a version control repository or project directory, so that it can be under version control together with other Pyrseas files such as the output from dbtoyaml --multiple-files. The default location for the repository can be specified in the user configuration, using the keys repository and path, for example:

repository:
  path: /home/user/project/repo

You can also use the --repository command line option to specify (or override) the directory path to the root of the repository and the utilities will look for a configuration file in that location.

If present, the repository configuration file will be merged with the system and user configuration information.

Command Line Configuration

The utilities also allow you to specify a fourth configuration file on the command line, using the --config command line option. Again, if the file exists, its information will be merged with previously read files.