use rusqlite::{Connection, Result as SqlResult};
pub fn migrate_schema(conn: &Connection) -> SqlResult<()> {
conn.execute(
"CREATE TABLE IF NOT EXISTS me (
alias TEXT PRIMARY KEY,
public_key TEXT NOT NULL,
private_key TEXT NOT NULL,
created_at TEXT NOT NULL
)",
[],
)?;
conn.execute(
"CREATE TABLE IF NOT EXISTS be (
key TEXT NOT NULL,
value TEXT NOT NULL,
timestamp TEXT NOT NULL,
is_private INTEGER NOT NULL DEFAULT 0
)",
[],
)?;
conn.execute(
"CREATE TABLE IF NOT EXISTS have (
key TEXT NOT NULL,
value TEXT NOT NULL,
timestamp TEXT NOT NULL,
is_private INTEGER NOT NULL DEFAULT 0
)",
[],
)?;
conn.execute(
"CREATE TABLE IF NOT EXISTS at (
key TEXT NOT NULL,
value TEXT NOT NULL,
timestamp TEXT NOT NULL,
is_private INTEGER NOT NULL DEFAULT 0
)",
[],
)?;
conn.execute(
"CREATE TABLE IF NOT EXISTS relate (
target TEXT NOT NULL,
key TEXT,
value TEXT,
timestamp TEXT NOT NULL,
is_private INTEGER NOT NULL DEFAULT 0
)",
[],
)?;
conn.execute(
"CREATE TABLE IF NOT EXISTS react (
target TEXT NOT NULL,
emoji TEXT NOT NULL,
timestamp TEXT NOT NULL,
is_private INTEGER NOT NULL DEFAULT 0
)",
[],
)?;
conn.execute(
"CREATE TABLE IF NOT EXISTS do_ (
key TEXT NOT NULL,
value TEXT NOT NULL,
timestamp TEXT NOT NULL,
is_private INTEGER NOT NULL DEFAULT 0
)",
[],
)?;
conn.execute(
"CREATE TABLE IF NOT EXISTS communication (
target TEXT NOT NULL,
message TEXT NOT NULL,
lang TEXT DEFAULT 'en',
timestamp TEXT NOT NULL,
is_private INTEGER NOT NULL DEFAULT 0
)",
[],
)?;
Ok(())
}