37 lines
910 B
Rust
37 lines
910 B
Rust
use rusqlite::{Connection, Result};
|
|
|
|
pub fn init_db() -> Result<Connection> {
|
|
let conn = Connection::open("form_data.db")?;
|
|
|
|
conn.execute(
|
|
"CREATE TABLE IF NOT EXISTS forms (
|
|
id TEXT PRIMARY KEY,
|
|
name TEXT NOT NULL,
|
|
fields TEXT NOT NULL,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
|
)",
|
|
[],
|
|
)?;
|
|
|
|
conn.execute(
|
|
"CREATE TABLE IF NOT EXISTS submissions (
|
|
id TEXT PRIMARY KEY,
|
|
form_id TEXT NOT NULL,
|
|
data TEXT NOT NULL,
|
|
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
|
|
FOREIGN KEY (form_id) REFERENCES forms (id) ON DELETE CASCADE
|
|
)",
|
|
[],
|
|
)?;
|
|
|
|
conn.execute(
|
|
"CREATE TABLE IF NOT EXISTS admin_users (
|
|
username TEXT PRIMARY KEY,
|
|
password_hash TEXT NOT NULL
|
|
)",
|
|
[],
|
|
)?;
|
|
|
|
Ok(conn)
|
|
}
|