48 lines
No EOL
1.8 KiB
Rust
48 lines
No EOL
1.8 KiB
Rust
use rusqlite::{Error, Connection};
|
|
|
|
pub fn migrate(con: &mut Connection) -> Result<(), Error>{
|
|
let tx = con.transaction()?;
|
|
tx.execute_batch(
|
|
"BEGIN;
|
|
CREATE TABLE peer (
|
|
id INTEGER PRIMARY KEY,
|
|
local_id INTEGER NOT NULL UNIQUE,
|
|
public_key BLOB UNIQUE NOT NULL,
|
|
);
|
|
CREATE TABLE received_authorization_request (
|
|
id INTEGER PRIMARY KEY,
|
|
request_id INTEGER NOT NULL UNIQUE,
|
|
public_key BLOB NOT NULL UNIQUE,
|
|
node_info TEXT,
|
|
created_at TEXT NOT NULL,
|
|
responded_at TEXT
|
|
);
|
|
CREATE TABLE sent_authorization_request (
|
|
id INTEGER PRIMARY KEY,
|
|
request_id INTEGER NOT NULL UNIQUE,
|
|
public_key. BLOB NOT NULL UNIQUE,
|
|
passcode TEXT NOT NULL,
|
|
created_at TEXT NOT NULL,
|
|
sent_at TEXT
|
|
);
|
|
CREATE TABLE authorized_peer (
|
|
id INTEGER PRIMARY KEY,
|
|
node_id BLOB NOT NULL UNIQUE,
|
|
last_synced_at TEXT,
|
|
last_sent_version_vector BLOB
|
|
created_at TEXT NOT NULL,
|
|
updated_at TEXT NOT NULL,
|
|
);
|
|
CREATE TABLE authorization (
|
|
id INTEGER PRIMARY KEY,
|
|
node_id BLOB UNIQUE NOT NULL,
|
|
passcode TEXT NOT NULL,
|
|
created_at TEXT NOT NULL,
|
|
updated_at TEXT NOT NULL,
|
|
);
|
|
COMMIT;",
|
|
)?;
|
|
tx.pragma_update(None, "user_version", 1)?;
|
|
tx.commit()?;
|
|
Ok(())
|
|
} |