Skip to content

Support different database flavors in the SQL scripts

This uses a new database table and some psql conditionals to introduce three different flavors for the swh.storage Postgres database:

  • the 'default' flavor has all the deduplication features, foreign keys and read indexes
  • the 'mirror' flavor has all the deduplication features and read indexes; it drops some foreign keys to allow for out of order addition of some object types
  • the 'read_replica' flavor has the minimal set of indexes to support read queries, and replication using the PostgreSQL logical replication feature

We still need to introduce a way to initialize the "flavor" of the database in swh db-init, between playing 00-swh-flavor.sql and 60-swh-indexes.sql.

Related to #2604.

(To support this feature, a preceding commit replaces our use of psycopg2 with psql for initialization of the test databases)

Test Plan

For now, only tested with tox (using the default, full-fat database flavor).


Migrated from D3981 (view on Phabricator)

Merge request reports