fix schemas

This commit is contained in:
Amber Brown 2019-06-03 22:23:40 +10:00
parent dc72b90cd6
commit 7f81b967ca
5 changed files with 22 additions and 61 deletions

View File

@ -146,9 +146,9 @@ def _setup_new_database(cur, database_engine):
directory_entries = os.listdir(sql_dir) directory_entries = os.listdir(sql_dir)
for filename in fnmatch.filter(directory_entries, "*.sql") + fnmatch.filter( for filename in sorted(fnmatch.filter(directory_entries, "*.sql") + fnmatch.filter(
directory_entries, "*.sql." + specific directory_entries, "*.sql." + specific
): )):
sql_loc = os.path.join(sql_dir, filename) sql_loc = os.path.join(sql_dir, filename)
logger.debug("Applying schema %s", sql_loc) logger.debug("Applying schema %s", sql_loc)
executescript(cur, sql_loc) executescript(cur, sql_loc)

View File

@ -60,21 +60,6 @@ CREATE TABLE application_services_txns (
); );
CREATE TABLE applied_module_schemas (
module_name text NOT NULL,
file text NOT NULL
);
CREATE TABLE applied_schema_deltas (
version integer NOT NULL,
file text NOT NULL
);
CREATE TABLE appservice_room_list ( CREATE TABLE appservice_room_list (
appservice_id text NOT NULL, appservice_id text NOT NULL,
network_id text NOT NULL, network_id text NOT NULL,
@ -475,7 +460,7 @@ CREATE TABLE group_roles (
group_id text NOT NULL, group_id text NOT NULL,
role_id text NOT NULL, role_id text NOT NULL,
profile text NOT NULL, profile text NOT NULL,
is_boolean NOT NULL is_public boolean NOT NULL
); );
@ -484,7 +469,7 @@ CREATE TABLE group_room_categories (
group_id text NOT NULL, group_id text NOT NULL,
category_id text NOT NULL, category_id text NOT NULL,
profile text NOT NULL, profile text NOT NULL,
is_boolean NOT NULL is_public boolean NOT NULL
); );
@ -492,7 +477,7 @@ CREATE TABLE group_room_categories (
CREATE TABLE group_rooms ( CREATE TABLE group_rooms (
group_id text NOT NULL, group_id text NOT NULL,
room_id text NOT NULL, room_id text NOT NULL,
is_boolean NOT NULL is_public boolean NOT NULL
); );
@ -520,7 +505,7 @@ CREATE TABLE group_summary_rooms (
room_id text NOT NULL, room_id text NOT NULL,
category_id text NOT NULL, category_id text NOT NULL,
room_order bigint NOT NULL, room_order bigint NOT NULL,
is_boolean NOT NULL, is_public boolean NOT NULL,
CONSTRAINT group_summary_rooms_room_order_check CHECK ((room_order > 0)) CONSTRAINT group_summary_rooms_room_order_check CHECK ((room_order > 0))
); );
@ -531,7 +516,7 @@ CREATE TABLE group_summary_users (
user_id text NOT NULL, user_id text NOT NULL,
role_id text NOT NULL, role_id text NOT NULL,
user_order bigint NOT NULL, user_order bigint NOT NULL,
is_boolean NOT NULL is_public boolean NOT NULL
); );
@ -540,7 +525,7 @@ CREATE TABLE group_users (
group_id text NOT NULL, group_id text NOT NULL,
user_id text NOT NULL, user_id text NOT NULL,
is_admin boolean NOT NULL, is_admin boolean NOT NULL,
is_boolean NOT NULL is_public boolean NOT NULL
); );
@ -551,7 +536,7 @@ CREATE TABLE groups (
avatar_url text, avatar_url text,
short_description text, short_description text,
long_description text, long_description text,
is_boolean NOT NULL, is_public boolean NOT NULL,
join_policy text DEFAULT 'invite'::text NOT NULL join_policy text DEFAULT 'invite'::text NOT NULL
); );
@ -578,7 +563,7 @@ CREATE TABLE local_group_membership (
user_id text NOT NULL, user_id text NOT NULL,
is_admin boolean NOT NULL, is_admin boolean NOT NULL,
membership text NOT NULL, membership text NOT NULL,
is_sed boolean NOT NULL, is_publicised boolean NOT NULL,
content text NOT NULL content text NOT NULL
); );
@ -695,7 +680,7 @@ CREATE TABLE profiles (
CREATE TABLE room_list_stream ( CREATE TABLE public_room_list_stream (
stream_id bigint NOT NULL, stream_id bigint NOT NULL,
room_id text NOT NULL, room_id text NOT NULL,
visibility boolean NOT NULL, visibility boolean NOT NULL,
@ -966,21 +951,12 @@ CREATE TABLE room_tags_revisions (
CREATE TABLE rooms ( CREATE TABLE rooms (
room_id text NOT NULL, room_id text NOT NULL,
is_boolean, is_public boolean,
creator text creator text
); );
CREATE TABLE schema_version (
lock character(1) DEFAULT 'X'::bpchar NOT NULL,
version integer NOT NULL,
upgraded boolean NOT NULL,
CONSTRAINT schema_version_lock_check CHECK ((lock = 'X'::bpchar))
);
CREATE TABLE server_keys_json ( CREATE TABLE server_keys_json (
server_name text NOT NULL, server_name text NOT NULL,
key_id text NOT NULL, key_id text NOT NULL,
@ -1135,7 +1111,7 @@ CREATE TABLE user_stats (
user_id text NOT NULL, user_id text NOT NULL,
ts bigint NOT NULL, ts bigint NOT NULL,
bucket_size integer NOT NULL, bucket_size integer NOT NULL,
rooms integer NOT NULL, public_rooms integer NOT NULL,
private_rooms integer NOT NULL private_rooms integer NOT NULL
); );
@ -1175,7 +1151,7 @@ CREATE TABLE users (
CREATE TABLE users_in_rooms ( CREATE TABLE users_in_public_rooms (
user_id text NOT NULL, user_id text NOT NULL,
room_id text NOT NULL room_id text NOT NULL
); );
@ -1225,17 +1201,6 @@ ALTER TABLE ONLY application_services_txns
ADD CONSTRAINT application_services_txns_as_id_txn_id_key UNIQUE (as_id, txn_id); ADD CONSTRAINT application_services_txns_as_id_txn_id_key UNIQUE (as_id, txn_id);
ALTER TABLE ONLY applied_module_schemas
ADD CONSTRAINT applied_module_schemas_module_name_file_key UNIQUE (module_name, file);
ALTER TABLE ONLY applied_schema_deltas
ADD CONSTRAINT applied_schema_deltas_version_file_key UNIQUE (version, file);
ALTER TABLE ONLY appservice_stream_position ALTER TABLE ONLY appservice_stream_position
ADD CONSTRAINT appservice_stream_position_lock_key UNIQUE (lock); ADD CONSTRAINT appservice_stream_position_lock_key UNIQUE (lock);
@ -1521,11 +1486,6 @@ ALTER TABLE ONLY rooms
ALTER TABLE ONLY schema_version
ADD CONSTRAINT schema_version_lock_key UNIQUE (lock);
ALTER TABLE ONLY server_keys_json ALTER TABLE ONLY server_keys_json
ADD CONSTRAINT server_keys_json_uniqueness UNIQUE (server_name, key_id, from_server); ADD CONSTRAINT server_keys_json_uniqueness UNIQUE (server_name, key_id, from_server);
@ -1846,15 +1806,15 @@ CREATE INDEX presence_stream_user_id ON presence_stream USING btree (user_id);
CREATE INDEX room_index ON rooms USING btree (is_; CREATE INDEX public_room_index ON rooms USING btree (is_public);
CREATE INDEX room_list_stream_idx ON room_list_stream USING btree (stream_id); CREATE INDEX public_room_list_stream_idx ON public_room_list_stream USING btree (stream_id);
CREATE INDEX room_list_stream_rm_idx ON room_list_stream USING btree (room_id, stream_id); CREATE INDEX public_room_list_stream_rm_idx ON public_room_list_stream USING btree (room_id, stream_id);
@ -2022,7 +1982,7 @@ CREATE INDEX user_threepids_user_id ON user_threepids USING btree (user_id);
CREATE UNIQUE INDEX users_in_rooms_u_idx ON users_in_rooms USING btree (user_id, room_id); CREATE UNIQUE INDEX users_in_public_rooms_u_idx ON users_in_public_rooms USING btree (user_id, room_id);

View File

@ -255,7 +255,6 @@ CREATE INDEX user_ips_last_seen_only ON user_ips (last_seen);
CREATE INDEX users_creation_ts ON users (creation_ts); CREATE INDEX users_creation_ts ON users (creation_ts);
CREATE INDEX event_to_state_groups_sg_index ON event_to_state_groups (state_group); CREATE INDEX event_to_state_groups_sg_index ON event_to_state_groups (state_group);
CREATE UNIQUE INDEX device_lists_remote_cache_unique_id ON device_lists_remote_cache (user_id, device_id); CREATE UNIQUE INDEX device_lists_remote_cache_unique_id ON device_lists_remote_cache (user_id, device_id);
CREATE TABLE sqlite_stat1(tbl,idx,stat);
CREATE INDEX state_groups_state_type_idx ON state_groups_state(state_group, type, state_key); CREATE INDEX state_groups_state_type_idx ON state_groups_state(state_group, type, state_key);
CREATE UNIQUE INDEX device_lists_remote_extremeties_unique_idx ON device_lists_remote_extremeties (user_id); CREATE UNIQUE INDEX device_lists_remote_extremeties_unique_idx ON device_lists_remote_extremeties (user_id);
CREATE UNIQUE INDEX user_ips_user_token_ip_unique_index ON user_ips (user_id, access_token, ip); CREATE UNIQUE INDEX user_ips_user_token_ip_unique_index ON user_ips (user_id, access_token, ip);

View File

@ -4,11 +4,11 @@ Building full schema dumps
Postgres Postgres
-------- --------
$ pg_dump --format=plain --schema-only --no-tablespaces --no-acl --no-owner $DATABASE_NAME| sed -e '/^--/d' -e 's/public.//g' -e '/^SET /d' -e '/^SELECT /d' > full.sql.postgres $ pg_dump --format=plain --schema-only --no-tablespaces --no-acl --no-owner $DATABASE_NAME| sed -e '/^--/d' -e 's/public\.//g' -e '/^SET /d' -e '/^SELECT /d' > full.sql.postgres
SQLite SQLite
------ ------
$ sqlite3 $DATABASE_FILE ".schema" > full.sql.sqlite $ sqlite3 $DATABASE_FILE ".schema" > full.sql.sqlite
Delete the CREATE statements for "schema_version", "applied_schema_deltas", and "applied_module_schemas". Delete the CREATE statements for "sqlite_stat1", "schema_version", "applied_schema_deltas", and "applied_module_schemas".

View File

@ -96,6 +96,7 @@ class UserDirectoryTestCase(unittest.HomeserverTestCase):
self.get_success(self.handler.handle_user_deactivated(r_user_id)) self.get_success(self.handler.handle_user_deactivated(r_user_id))
self.store.remove_from_user_dir.called_once_with(r_user_id) self.store.remove_from_user_dir.called_once_with(r_user_id)
@unittest.DEBUG
def test_private_room(self): def test_private_room(self):
""" """
A user can be searched for only by people that are either in a public A user can be searched for only by people that are either in a public
@ -340,6 +341,7 @@ class TestUserDirSearchDisabled(unittest.HomeserverTestCase):
return hs return hs
@unittest.DEBUG
def test_disabling_room_list(self): def test_disabling_room_list(self):
self.config.user_directory_search_enabled = True self.config.user_directory_search_enabled = True