/usr/share/postgresql-common/upgrade-scripts/SPECIFICATION is in postgresql-common 173ubuntu0.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | postgresql-common upgrade script infrastructure
===============================================
Purpose
-------
These scripts are executed on upgrades of postgresql-common. They can be used
to perform version-specific or common tasks on all databases or all clusters
(like doing security updates on already existing databases, do format
conversions, and so on).
Conventions
-----------
File names must have the following format:
version_name_scope.suffix
Files can either be SQL scripts with a "sql" suffix, or executable scripts with
any other suffix.
Files not following these conventions (like this README file) are ignored.
version:
This specifies a version number of postgresql-common. If the package
is upgraded from a version less than or equal to this number, the script is
applied. If version is "all", the script is always applied regardless of the
already installed version.
name:
This name is displayed when calling the script as an information for the
user.
scope:
db: The script is called/applied for each existing database of all clusters,
but not to template1 and template0.
t1: The script is additionally applied to all template1 databases.
t0: The script is additionally applied to all template0 databases.
cluster: The script is called once for each existing cluster.
suffix:
".sql" for SQL scripts, arbitrary (also empty) for executable scripts.
SQL Scripts
-----------
Per-database scripts are fed to psql which is called as cluster superuser on
the currently processed database. Per-cluster scripts are called with
connecting to template1.
Executable scripts
------------------
Scripts receive the following arguments:
<version> <cluster> <database name>
<database name> will always be "template1" for cluster-scope scripts.
On success, they must exit with 0; on error, they should write error
messages to stdout and exit with nonzero. stdout is then displayed as
a failure message.
|