zulip/scripts/setup
Alex Vandiver a1151aef8b create-database: Hide harmless "non-existant database" warnings.
During installation on a new host, `create-database` attempts to
verify that there isn't a bunch of data already in the database which
is it about to drop and recreate.  In the most common case, this
statement emits a scary-looking warning, since the database does not
exist yet:

```
+ /home/zulip/deployments/current/scripts/setup/create-database
+ POSTGRES_USER=postgres
++ crudini --get /etc/zulip/zulip.conf postgresql database_name
++ echo zulip
+ DATABASE_NAME=zulip
++ crudini --get /etc/zulip/zulip.conf postgresql database_user
++ echo zulip
+ DATABASE_USER=zulip
++ cd /
++ su postgres -c 'psql -v ON_ERROR_STOP=1 -Atc '\''SELECT COUNT(*) FROM zulip.zerver_message;'\'' zulip'
psql: error: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: FATAL:  database "zulip" does not exist
```

Because we are attempting to gracefully handle the case where the
database does not exist yet, we also continue (and drop the database)
in other, less expected cases -- for instance, if database contains a
schema we do not expect.

Explicitly check for the database existence first, and once we verify
that, allow any further failures in the `SELECT COUNT(*)` to abort
`create-database`.  This serves the dual purpose of hiding the "FATAL"
error for the common case when the database does not exist, as well as
preventing dropping the database if anything else goes awry.
2023-01-05 11:39:23 -08:00
..
apt-repos scripts: Pass --retry 3 to curl. 2022-11-08 08:07:36 -08: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 postgres-create-db: Split into non-pgroonga and pgroonga scripts. 2019-07-17 16:18:22 -07:00
flush-memcached memcached: Switch from pylibmc to python-binary-memcached. 2020-08-06 12:51:14 -07: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
generate_secrets.py settings: Make SHARED_SECRET mandatory. 2022-08-25 12:13:03 -07:00
initialize-database scripts: Switch to stop-server/restart-server. 2022-03-21 16:33:28 -07:00
inline_email_css.py Fix typos caught by typos. 2023-01-03 11:09:50 -08:00
install install: Use a period at end of root error message. 2021-06-23 08:42:46 -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-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: Ensure the new PostgreSQL is running. 2023-01-03 11:10:49 -08:00