this_env/env/
migrate_schema.rs1use rusqlite::{Connection, Result as SqlResult};
4pub fn migrate_schema(conn: &Connection) -> SqlResult<()> {
5 conn.execute(
6 "CREATE TABLE IF NOT EXISTS env (
7 domain TEXT PRIMARY KEY,
8 id TEXT NOT NULL,
9 env_type TEXT NOT NULL,
10 trust TEXT NOT NULL,
11 parent TEXT
12 )",
13 [],
14 )?;
15 conn.execute(
16 "CREATE TABLE IF NOT EXISTS metadata (
17 domain TEXT,
18 key TEXT,
19 value TEXT,
20 PRIMARY KEY (domain, key)
21 )",
22 [],
23 )?;
24 conn.execute(
25 "CREATE TABLE IF NOT EXISTS routes (
26 domain TEXT,
27 path TEXT,
28 hit_count INTEGER,
29 last_seen TEXT,
30 PRIMARY KEY (domain, path)
31 )",
32 [],
33 )?;
34 conn.execute(
35 "CREATE TABLE IF NOT EXISTS route_metadata (
36 domain TEXT,
37 path TEXT,
38 key TEXT,
39 value TEXT,
40 PRIMARY KEY (domain, path, key)
41 )",
42 [],
43 )?;
44 conn.execute(
45 "CREATE TABLE IF NOT EXISTS endorsements (
46 domain TEXT,
47 endorser TEXT,
48 approved INTEGER,
49 timestamp INTEGER,
50 PRIMARY KEY (domain, endorser)
51 )",
52 [],
53 )?;
54 conn.execute(
55 "CREATE TABLE IF NOT EXISTS env_request_logs (
56 id INTEGER PRIMARY KEY AUTOINCREMENT,
57 domain TEXT,
58 timestamp TEXT NOT NULL,
59 method TEXT,
60 path TEXT,
61 ip TEXT,
62 host TEXT,
63 headers TEXT,
64 decision TEXT,
65 reason TEXT
66 )",
67 [],
68 )?;
69 Ok(())
70}