30 lines
880 B
Go
30 lines
880 B
Go
package storage
|
|
|
|
// migration010 — sync_ops table for recording operations to push to sync server.
|
|
const migration010 = `
|
|
CREATE TABLE IF NOT EXISTS sync_ops (
|
|
id TEXT PRIMARY KEY,
|
|
op_id TEXT NOT NULL UNIQUE,
|
|
device_id TEXT NOT NULL,
|
|
entity_type TEXT NOT NULL,
|
|
entity_id TEXT NOT NULL,
|
|
op_type TEXT NOT NULL,
|
|
payload_json TEXT NOT NULL DEFAULT '{}',
|
|
created_at TEXT NOT NULL,
|
|
pushed_at TEXT,
|
|
applied_at TEXT
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_sync_ops_pushed ON sync_ops(pushed_at);
|
|
CREATE INDEX IF NOT EXISTS idx_sync_ops_entity ON sync_ops(entity_type, entity_id);
|
|
|
|
CREATE TABLE IF NOT EXISTS sync_state (
|
|
device_id TEXT PRIMARY KEY,
|
|
server_url TEXT NOT NULL DEFAULT '',
|
|
api_key TEXT NOT NULL DEFAULT '',
|
|
last_push_rev INTEGER NOT NULL DEFAULT 0,
|
|
last_pull_rev INTEGER NOT NULL DEFAULT 0,
|
|
last_sync_at TEXT
|
|
);
|
|
`
|