zulip/scripts
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
..
lib pgroonga: Run upgrade SQL when pgroonga package is updated. 2023-06-23 14:40:27 -07:00
nagios ruff: Fix SIM118 Use `key in dict` instead of `key in dict.keys()`. 2023-01-04 16:25:07 -08:00
setup pgroonga: Run upgrade SQL when pgroonga package is updated. 2023-06-23 14:40:27 -07:00
README.md docs: Apply bullet style changes from Prettier. 2021-09-08 12:06:24 -07:00
__init__.py
get-django-setting python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
log-search log-search: Filter out /error_tracing endpoints. 2023-05-05 14:45:46 -07:00
purge-old-deployments zulip_tools: Rename may_be_perform_purging to maybe_perform_purging. 2022-01-12 13:21:35 -08:00
refresh-sharding-and-restart sharding: Configure Tornado sharding with nginx map. 2022-09-15 16:07:50 -07:00
restart-server puppet: Switch the `rolling_restart` setting to use the bool values. 2023-05-11 15:54:15 -07:00
start-server scripts: Add a start-server as well. 2021-04-21 10:24:08 -07:00
stop-server stop-server: Only stop services if they exist and are running. 2022-05-22 14:52:38 -07:00
upgrade-zulip upgrade: Modify upgrade scripts to handle failure. 2021-06-23 08:42:20 -07:00
upgrade-zulip-from-git upgrade: Modify upgrade scripts to handle failure. 2021-06-23 08:42:20 -07:00
zulip-puppet-apply zulip-puppet-apply: Any resources failing to apply should exit 2. 2023-04-19 09:35:19 -07:00

README.md

This directory contains scripts that:

  • Generally do not require access to Django or the database (those are "management commands"), and thus are suitable to run operationally.

  • Are useful for managing a production deployment of Zulip (many are also used in a Zulip development environment, though development-only scripts live in tools/).

For more details, see https://zulip.readthedocs.io/en/latest/overview/directory-structure.html.