From 7795a0fbf98e6f4d42768fc1b5496373723b4bd2 Mon Sep 17 00:00:00 2001 From: Boris Gulay Date: Wed, 16 Dec 2020 23:56:28 +0300 Subject: [PATCH] Fix SQlite scripts. Thanx to T S. Closes #76 --- SQL/sqlite.initial.sql | 26 ++++++++--- SQL/sqlite/2020121600.sql | 92 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 111 insertions(+), 7 deletions(-) create mode 100644 SQL/sqlite/2020121600.sql diff --git a/SQL/sqlite.initial.sql b/SQL/sqlite.initial.sql index 474726f..d6aa114 100644 --- a/SQL/sqlite.initial.sql +++ b/SQL/sqlite.initial.sql @@ -21,19 +21,31 @@ CREATE TABLE ident_switch imap_port integer CHECK(imap_port > 0 AND imap_port <= 65535), - imap_delimiter - char(1), + imap_delimiter + char(1), label varchar(32), flags integer NOT NULL DEFAULT(0), - smtp_host - varchar(64), - smtp_port - integer - CHECK(smtp_port > 0 AND smtp_port <= 65535), + smtp_host + varchar(64), + smtp_port + integer + CHECK(smtp_port > 0 AND smtp_port <= 65535), + smtp_auth + smallint + NOT NULL + DEFAULT 1, + drafts_mbox + varchar(64), + sent_mbox + varchar(64), + junk_mbox + varchar(64), + trash_mbox + varchar(64), UNIQUE (user_id, label) ); CREATE INDEX IX_ident_switch_user_id ON ident_switch(user_id); diff --git a/SQL/sqlite/2020121600.sql b/SQL/sqlite/2020121600.sql new file mode 100644 index 0000000..f8a2380 --- /dev/null +++ b/SQL/sqlite/2020121600.sql @@ -0,0 +1,92 @@ +PRAGMA foreign_keys=off; +BEGIN TRANSACTION; + +ALTER TABLE ident_switch RENAME TO ident_switch_old; + +CREATE TABLE ident_switch +( + id + integer + PRIMARY KEY, + user_id + integer + NOT NULL + REFERENCES users(user_id) ON DELETE CASCADE ON UPDATE CASCADE, + iid + integer + NOT NULL + REFERENCES identities(identity_id) ON DELETE CASCADE ON UPDATE CASCADE + UNIQUE, + username + varchar(64), + password + varchar(64), + imap_host + varchar(64), + imap_port + integer + CHECK(imap_port > 0 AND imap_port <= 65535), + imap_delimiter + char(1), + label + varchar(32), + flags + integer + NOT NULL + DEFAULT(0), + smtp_host + varchar(64), + smtp_port + integer + CHECK(smtp_port > 0 AND smtp_port <= 65535), + smtp_auth + smallint + NOT NULL + DEFAULT 1, + drafts_mbox + varchar(64), + sent_mbox + varchar(64), + junk_mbox + varchar(64), + trash_mbox + varchar(64), + UNIQUE (user_id, label) +); +CREATE INDEX IX_ident_switch_user_id ON ident_switch(user_id); +CREATE INDEX IX_ident_switch_iid on ident_switch(iid); + +INSERT OR ROLLBACK INTO + ident_switch ( + id, + user_id, + iid, + username, + password, + imap_host, + imap_port, + label, + flags, + smtp_host, + smtp_port + ) +SELECT + id, + user_id, + iid, + username, + password, + imap_host, + imap_port, + label, + flags, + smtp_host, + smtp_port +FROM + ident_switch_old; + +DROP TABLE + ident_switch_old; + +COMMIT; +PRAGMA foreign_keys=on; \ No newline at end of file