sshkeeper/internal/db/migrations/001_init.sql

48 lines
1.6 KiB
SQL

CREATE TABLE IF NOT EXISTS servers (
id INTEGER PRIMARY KEY AUTOINCREMENT,
alias TEXT NOT NULL UNIQUE,
display_name TEXT NOT NULL DEFAULT '',
host TEXT NOT NULL,
port INTEGER NOT NULL DEFAULT 22,
user TEXT NOT NULL DEFAULT '',
auth_method TEXT NOT NULL DEFAULT 'key',
identity_file TEXT NOT NULL DEFAULT '',
proxy_jump TEXT NOT NULL DEFAULT '',
group_name TEXT NOT NULL DEFAULT '',
notes TEXT NOT NULL DEFAULT '',
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
last_connected_at DATETIME,
last_test_at DATETIME,
last_test_status TEXT NOT NULL DEFAULT 'unknown',
last_test_error TEXT NOT NULL DEFAULT ''
);
CREATE TABLE IF NOT EXISTS tags (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL UNIQUE
);
CREATE TABLE IF NOT EXISTS server_tags (
server_id INTEGER NOT NULL REFERENCES servers(id) ON DELETE CASCADE,
tag_id INTEGER NOT NULL REFERENCES tags(id) ON DELETE CASCADE,
PRIMARY KEY (server_id, tag_id)
);
CREATE TABLE IF NOT EXISTS forwards (
id INTEGER PRIMARY KEY AUTOINCREMENT,
server_id INTEGER NOT NULL REFERENCES servers(id) ON DELETE CASCADE,
type TEXT NOT NULL DEFAULT 'local',
local_addr TEXT NOT NULL DEFAULT '',
local_port INTEGER NOT NULL DEFAULT 0,
remote_addr TEXT NOT NULL DEFAULT '',
remote_port INTEGER NOT NULL DEFAULT 0
);
CREATE TABLE IF NOT EXISTS command_templates (
id INTEGER PRIMARY KEY AUTOINCREMENT,
server_id INTEGER NOT NULL REFERENCES servers(id) ON DELETE CASCADE,
name TEXT NOT NULL,
command TEXT NOT NULL
);