Fix sqlite scripts. Closes #35.

This commit is contained in:
Boris Gulay
2019-02-03 19:48:43 +03:00
parent c2380e630b
commit 89791e1f49
2 changed files with 74 additions and 23 deletions

View File

@@ -1,7 +1,7 @@
CREATE TABLE ident_switch CREATE TABLE ident_switch
( (
id id
serial integer
PRIMARY KEY, PRIMARY KEY,
user_id user_id
integer integer

View File

@@ -1,25 +1,76 @@
ALTER TABLE PRAGMA foreign_keys=off;
ident_switch BEGIN TRANSACTION;
RENAME COLUMN
host
TO
imap_host;
ALTER TABLE ALTER TABLE ident_switch RENAME TO ident_switch_old;
ident_switch
RENAME COLUMN
port
TO
imap_port;
ALTER TABLE CREATE TABLE ident_switch
ident_switch (
ADD COLUMN 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),
label
varchar(32),
flags
integer
NOT NULL
DEFAULT(0),
smtp_host smtp_host
varchar(64); varchar(64),
ALTER TABLE
ident_switch
ADD COLUMN
smtp_port smtp_port
int; integer
CHECK(smtp_port > 0 AND smtp_port <= 65535),
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
)
SELECT
id,
user_id,
iid,
username,
password,
host,
port,
label,
flags,
host,
FROM
ident_switch_old;
DROP TABLE
ident_switch_old;
COMMIT;
PRAGMA foreign_keys=on;