X-Git-Url: http://gitweb.michael.orlitzky.com/?p=mailshears.git;a=blobdiff_plain;f=src%2Fplugins%2Froundcube_db.rb;h=cb2e055f44f9b720ca436a510e6f7c0fb85bfadf;hp=94fe14a3c31b325d0ae1cba83338d87c52f4d512;hb=6ea85440cad9212639af782bd758a8eccd55f90e;hpb=8a144665870be06c4241c2ba03d2a1fd3233a74a diff --git a/src/plugins/roundcube_db.rb b/src/plugins/roundcube_db.rb index 94fe14a..cb2e055 100644 --- a/src/plugins/roundcube_db.rb +++ b/src/plugins/roundcube_db.rb @@ -39,12 +39,27 @@ class RoundcubeDb # belonging to it. user_id = self.get_user_id(account) + # This is mostly unnecessary when using Postgres. The Roundcube + # developers were nice enough to include DBMS-specific install and + # upgrade scripts, so Postgres can take advantage of ON DELETE + # triggers. Here's an example: + # + # ... + # user_id integer NOT NULL + # REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE + # sql_queries = ['DELETE FROM cache WHERE user_id = $1::int;'] + sql_queries << 'DELETE FROM cache_index WHERE user_id = $1::int;' + sql_queries << 'DELETE FROM cache_messages WHERE user_id = $1::int;' + sql_queries << 'DELETE FROM cache_thread WHERE user_id = $1::int;' sql_queries << 'DELETE FROM contactgroupmembers WHERE contactgroup_id IN (SELECT contactgroup_id FROM contactgroups WHERE user_id = $1::int);' sql_queries << 'DELETE FROM contactgroups WHERE user_id = $1::int;' sql_queries << 'DELETE FROM contacts WHERE user_id = $1::int;' sql_queries << 'DELETE FROM identities WHERE user_id = $1::int;' - sql_queries << 'DELETE FROM messages WHERE user_id = $1::int;' + sql_queries << 'DELETE FROM dictionary WHERE user_id = $1::int;' + sql_queries << 'DELETE FROM searches WHERE user_id = $1::int;' + + # This one is of course necessary with any DBMS. sql_queries << 'DELETE FROM users WHERE user_id = $1::int;' begin