diff --git a/sql/pg.new.sql b/sql/pg.new.sql index 5bd107d97..1e59ec571 100644 --- a/sql/pg.new.sql +++ b/sql/pg.new.sql @@ -20,7 +20,7 @@ -- ALTER TABLE users ADD COLUMN server_host text NOT NULL DEFAULT ''; -- ALTER TABLE users DROP CONSTRAINT users_pkey; --- ALTER TABLE users ADD PRIMARY KEY (server_host, username); +-- ALTER TABLE users ADD PRIMARY KEY (server_host, username, "type"); -- ALTER TABLE users ALTER COLUMN server_host DROP DEFAULT; -- ALTER TABLE last ADD COLUMN server_host text NOT NULL DEFAULT ''; diff --git a/src/mod_admin_update_sql.erl b/src/mod_admin_update_sql.erl index ba33f7e50..105828f7d 100644 --- a/src/mod_admin_update_sql.erl +++ b/src/mod_admin_update_sql.erl @@ -130,7 +130,7 @@ update_tables(State) -> case add_sh_column(State, "users") of true -> drop_pkey(State, "users"), - add_pkey(State, "users", ["server_host", "username"]), + add_pkey(State, "users", ["server_host", "username", "type"]), drop_sh_default(State, "users"); false -> ok @@ -443,7 +443,8 @@ drop_pkey(#state{dbtype = mysql} = State, Table) -> ["ALTER TABLE ", Table, " DROP PRIMARY KEY;"]). add_pkey(#state{dbtype = pgsql} = State, Table, Cols) -> - SCols = string:join(Cols, ", "), + Cols2 = lists:map(fun("type") -> "\"type\""; (V) -> V end, Cols), + SCols = string:join(Cols2, ", "), sql_query( State#state.host, ["ALTER TABLE ", Table, " ADD PRIMARY KEY (", SCols, ");"]);