- Increase password column from varchar(64) to varchar(255) to prevent silent truncation of encrypted passwords - Add missing UNIQUE constraint on iid in MySQL - Add missing IX_ident_switch_iid index in PostgreSQL - Remove deprecated int display width in MySQL (int(10) -> int) - Fix trailing comma syntax error in SQLite 2018121800 migration - Normalize indentation across all initial SQL files - Add migration 2026021000 for all engines to fix existing installs
76 lines
1.1 KiB
SQL
76 lines
1.1 KiB
SQL
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),
|
|
label
|
|
varchar(32),
|
|
flags
|
|
integer
|
|
NOT NULL
|
|
DEFAULT(0),
|
|
smtp_host
|
|
varchar(64),
|
|
smtp_port
|
|
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; |