this_env/env/
migrate_schema.rs

1//this.env/crate/src/env/migrate_schema.rs by suiGn
2use rusqlite::{Connection, Result as SqlResult};
3pub fn migrate_schema(conn: &Connection) -> SqlResult<()> {
4    conn.execute(
5        "CREATE TABLE IF NOT EXISTS env (
6            domain TEXT PRIMARY KEY,
7            id TEXT NOT NULL,
8            env_type TEXT NOT NULL,
9            trust TEXT NOT NULL,
10            parent TEXT
11        )",
12        [],
13    )?;
14    conn.execute(
15        "CREATE TABLE IF NOT EXISTS metadata (
16            domain TEXT,
17            key TEXT,
18            value TEXT,
19            PRIMARY KEY (domain, key)
20        )",
21        [],
22    )?;
23    conn.execute(
24        "CREATE TABLE IF NOT EXISTS routes (
25            domain TEXT,
26            path TEXT,
27            hit_count INTEGER,
28            last_seen TEXT,
29            PRIMARY KEY (domain, path)
30        )",
31        [],
32    )?;
33    conn.execute(
34        "CREATE TABLE IF NOT EXISTS route_metadata (
35            domain TEXT,
36            path TEXT,
37            key TEXT,
38            value TEXT,
39            PRIMARY KEY (domain, path, key)
40        )",
41        [],
42    )?;
43    conn.execute(
44        "CREATE TABLE IF NOT EXISTS endorsements (
45            domain TEXT,
46            endorser TEXT,
47            approved INTEGER,
48            timestamp INTEGER,
49            PRIMARY KEY (domain, endorser)
50        )",
51        [],
52    )?;
53    Ok(())
54}