33 lines
1.2 KiB
MySQL
33 lines
1.2 KiB
MySQL
|
-- v9: Make phone nullable for puppets
|
||
|
-- transaction: off
|
||
|
|
||
|
PRAGMA foreign_keys = OFF;
|
||
|
BEGIN TRANSACTION;
|
||
|
|
||
|
CREATE TABLE puppet_new (
|
||
|
id TEXT NOT NULL,
|
||
|
receiver BIGINT NOT NULL,
|
||
|
phone TEXT,
|
||
|
contact_id TEXT NOT NULL,
|
||
|
name TEXT NOT NULL,
|
||
|
name_set BOOLEAN NOT NULL DEFAULT false,
|
||
|
avatar_hash bytea CHECK ( LENGTH(avatar_hash) = 32 ),
|
||
|
avatar_update_ts BIGINT NOT NULL,
|
||
|
avatar_mxc TEXT NOT NULL,
|
||
|
avatar_set BOOLEAN NOT NULL DEFAULT false,
|
||
|
contact_info_set BOOLEAN NOT NULL DEFAULT false,
|
||
|
|
||
|
PRIMARY KEY (id, receiver),
|
||
|
CONSTRAINT puppet_user_fkey FOREIGN KEY (receiver) REFERENCES "user"(rowid) ON DELETE CASCADE,
|
||
|
CONSTRAINT puppet_phone_unique UNIQUE (phone, receiver)
|
||
|
);
|
||
|
INSERT INTO puppet_new (id, receiver, phone, contact_id, name, name_set, avatar_hash, avatar_update_ts, avatar_mxc, avatar_set, contact_info_set)
|
||
|
SELECT id, receiver, phone, contact_id, name, name_set, avatar_hash, avatar_update_ts, avatar_mxc, avatar_set, contact_info_set
|
||
|
FROM puppet;
|
||
|
DROP TABLE puppet;
|
||
|
ALTER TABLE puppet_new RENAME TO puppet;
|
||
|
|
||
|
PRAGMA foreign_key_check;
|
||
|
COMMIT;
|
||
|
PRAGMA FOREIGN_KEYS = ON;
|