zulip/scripts/setup
Alex Vandiver c8ec3dfcf6 pgroonga: Run upgrade SQL when pgroonga package is updated.
Updating the pgroonga package is not sufficient to upgrade the
extension in PostgreSQL -- an `ALTER EXTENSION pgroonga UPDATE` must
explicitly be run[^1].  Failure to do so can lead to unexpected behavior,
including crashes of PostgreSQL.

Expand on the existing `pgroonga_setup.sql.applied` file, to track
which version of the PostgreSQL extension has been configured.  If the
file exists but is empty, we run `ALTER EXTENSION pgroonga UPDATE`
regardless -- if it is a no-op, it still succeeds with a `NOTICE`:

```
zulip=# ALTER EXTENSION pgroonga UPDATE;
NOTICE:  version "3.0.8" of extension "pgroonga" is already installed
ALTER EXTENSION
```

The simple `ALTER EXTENSION` is sufficient for the
backwards-compatible case[^1] -- which, for our usage, is every
upgrade since 0.9 -> 1.0.  Since version 1.0 was released in 2015,
before pgroonga support was added to Zulip in 2016, we can assume for
the moment that all pgroonga upgrades are backwards-compatible, and
not bother regenerating indexes.

Fixes: #25989.

[^1]: https://pgroonga.github.io/upgrade/
2023-06-23 14:40:27 -07:00
..
apt-repos install: Support Debian 12. 2023-05-18 11:52:22 -07:00
__init__.py setup: Add missing __init__.py. 2021-07-05 12:20:39 -07:00
compare-settings-to-template compare-settings-to-template: Handle prod_settings_template renaming. 2022-04-28 14:52:38 -07:00
configure-rabbitmq configure-rabbitmq: Remove use of sudo. 2022-04-19 12:36:31 -07:00
create-database create-database: Hide harmless "non-existant database" warnings. 2023-01-05 11:39:23 -08:00
create-db.sql create-db: Default dbuser and dbname to zulip. 2021-05-26 17:19:11 -07:00
create-pgroonga.sql pgroonga: Remove now-unnecessary 'GRANT USAGE' statement. 2023-06-23 14:40:27 -07:00
flush-memcached memcached: Switch from pylibmc to python-binary-memcached. 2020-08-06 12:51:14 -07:00
generate_secrets.py black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
generate-rabbitmq-cookie CVE-2021-43799: Set a secure Erlang cookie. 2022-01-25 02:13:53 +00:00
generate-self-signed-cert generate-self-signed-cert: Remove RANDFILE. 2022-02-25 14:49:07 -08:00
initialize-database scripts: Switch to stop-server/restart-server. 2022-03-21 16:33:28 -07:00
install install: Use a period at end of root error message. 2021-06-23 08:42:46 -07:00
pgroonga-config pgroonga: Run upgrade SQL when pgroonga package is updated. 2023-06-23 14:40:27 -07:00
reindex-textual-data scripts: Help mypy resolve the psycopg2.connect overload. 2022-08-30 17:36:21 -07:00
restore-backup restore-backup: Provide flags to leave settings.py and zulip.conf as-is. 2022-07-20 12:35:51 -07:00
setup-certbot install-shellcheck: Upgrade ShellCheck to 0.9.0. 2023-01-04 14:01:34 -08:00
sha256-file-to puppet: Add a sha256_file_to. 2023-02-10 15:53:10 -08:00
sha256-tarball-to scripts: Pass --retry 3 to curl. 2022-11-08 08:07:36 -08:00
terminate-psql-sessions terminate-psql-sessions: Rely on the caller to set PGHOST, PGUSER. 2020-06-15 21:37:14 -07:00
upgrade-postgresql upgrade-postgresql: Only upgrade to a supported version. 2023-06-12 16:37:55 -07:00