|
| 1 | +PRAGMA foreign_keys = ON; |
| 2 | + |
| 3 | +CREATE TABLE IF NOT EXISTS accounts ( |
| 4 | + account_hash TEXT PRIMARY KEY, |
| 5 | + encrypted_wq_id TEXT NOT NULL, |
| 6 | + encryption_iv TEXT NOT NULL, |
| 7 | + key_version INTEGER NOT NULL, |
| 8 | + country TEXT NOT NULL, |
| 9 | + latest_version TEXT NOT NULL, |
| 10 | + latest_version_rank TEXT NOT NULL, |
| 11 | + first_seen_at TEXT NOT NULL, |
| 12 | + last_seen_at TEXT NOT NULL |
| 13 | +); |
| 14 | + |
| 15 | +CREATE TABLE IF NOT EXISTS installations ( |
| 16 | + installation_id TEXT NOT NULL, |
| 17 | + account_hash TEXT NOT NULL, |
| 18 | + first_seen_at TEXT NOT NULL, |
| 19 | + last_seen_at TEXT NOT NULL, |
| 20 | + PRIMARY KEY (installation_id, account_hash), |
| 21 | + FOREIGN KEY (account_hash) REFERENCES accounts(account_hash) ON DELETE CASCADE |
| 22 | +); |
| 23 | + |
| 24 | +CREATE TABLE IF NOT EXISTS version_registrations ( |
| 25 | + installation_id TEXT NOT NULL, |
| 26 | + account_hash TEXT NOT NULL, |
| 27 | + version TEXT NOT NULL, |
| 28 | + previous_version TEXT, |
| 29 | + reason TEXT NOT NULL CHECK (reason IN ('install', 'update', 'retry')), |
| 30 | + country TEXT NOT NULL, |
| 31 | + first_reported_at TEXT NOT NULL, |
| 32 | + PRIMARY KEY (installation_id, account_hash, version), |
| 33 | + FOREIGN KEY (installation_id, account_hash) |
| 34 | + REFERENCES installations(installation_id, account_hash) |
| 35 | + ON DELETE CASCADE |
| 36 | +); |
| 37 | + |
| 38 | +CREATE INDEX IF NOT EXISTS idx_accounts_country ON accounts(country); |
| 39 | +CREATE INDEX IF NOT EXISTS idx_accounts_latest_version ON accounts(latest_version); |
| 40 | +CREATE INDEX IF NOT EXISTS idx_accounts_last_seen ON accounts(last_seen_at DESC); |
| 41 | +CREATE INDEX IF NOT EXISTS idx_installations_account ON installations(account_hash); |
| 42 | +CREATE INDEX IF NOT EXISTS idx_registrations_account ON version_registrations(account_hash); |
| 43 | +CREATE INDEX IF NOT EXISTS idx_registrations_reported ON version_registrations(first_reported_at DESC); |
| 44 | +CREATE INDEX IF NOT EXISTS idx_registrations_upgrade ON version_registrations(previous_version, version); |
0 commit comments