21 lines
810 B
SQL
21 lines
810 B
SQL
-- SQLite cannot drop a NOT NULL constraint via ALTER, so rebuild the users
|
|
-- table: email becomes nullable, phone is added as a unique second identifier,
|
|
-- and existing rows are carried across (phone stays NULL).
|
|
CREATE TABLE users_new (
|
|
id TEXT PRIMARY KEY,
|
|
email TEXT UNIQUE,
|
|
phone TEXT UNIQUE,
|
|
password_hash TEXT NOT NULL,
|
|
name TEXT NOT NULL,
|
|
avatar_url TEXT,
|
|
preferences TEXT NOT NULL DEFAULT '{}',
|
|
created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))
|
|
);
|
|
|
|
INSERT INTO users_new (id, email, phone, password_hash, name, avatar_url, preferences, created_at)
|
|
SELECT id, email, NULL, password_hash, name, avatar_url, preferences, created_at FROM users;
|
|
|
|
DROP TABLE users;
|
|
|
|
ALTER TABLE users_new RENAME TO users;
|