| 72 | } |
| 73 | |
| 74 | func (dbms *DBMS) DatabaseInit() error { |
| 75 | var ( |
| 76 | err error |
| 77 | createTableQuery string |
| 78 | ) |
| 79 | |
| 80 | createTableQuery = `CREATE TABLE IF NOT EXISTS "Listeners" ( |
| 81 | "ListenerName" TEXT NOT NULL UNIQUE, |
| 82 | "ListenerRegName" TEXT NOT NULL, |
| 83 | "ListenerConfig" TEXT NOT NULL, |
| 84 | "ListenerStatus" TEXT, |
| 85 | "CreateTime" BIGINT, |
| 86 | "Watermark" TEXT NOT NULL, |
| 87 | "CustomData" BLOB |
| 88 | );` |
| 89 | _, err = dbms.database.Exec(createTableQuery) |
| 90 | |
| 91 | // TODO CLEAR: Soft migration for old databases |
| 92 | _, _ = dbms.database.Exec(`ALTER TABLE "Listeners" ADD COLUMN "ListenerStatus" TEXT;`) |
| 93 | _, _ = dbms.database.Exec(`UPDATE "Listeners" SET "ListenerStatus" = 'Listen' WHERE "ListenerStatus" IS NULL;`) |
| 94 | |
| 95 | createTableQuery = `CREATE TABLE IF NOT EXISTS "Chat" ( |
| 96 | "Id" INTEGER PRIMARY KEY AUTOINCREMENT, |
| 97 | "Username" TEXT NOT NULL, |
| 98 | "Message" TEXT NOT NULL, |
| 99 | "Date" BIGINT |
| 100 | );` |
| 101 | _, err = dbms.database.Exec(createTableQuery) |
| 102 | |
| 103 | createTableQuery = `CREATE TABLE IF NOT EXISTS "Downloads" ( |
| 104 | "FileId" TEXT NOT NULL UNIQUE, |
| 105 | "AgentId" TEXT NOT NULL, |
| 106 | "AgentName" TEXT NOT NULL, |
| 107 | "User" TEXT NOT NULL, |
| 108 | "Computer" TEXT NOT NULL, |
| 109 | "RemotePath" TEXT NOT NULL, |
| 110 | "LocalPath" TEXT NOT NULL, |
| 111 | "TotalSize" BIGINT, |
| 112 | "RecvSize" BIGINT, |
| 113 | "Date" BIGINT, |
| 114 | "State" INTEGER |
| 115 | );` |
| 116 | _, err = dbms.database.Exec(createTableQuery) |
| 117 | |
| 118 | createTableQuery = `CREATE TABLE IF NOT EXISTS "Screenshots" ( |
| 119 | "ScreenId" TEXT NOT NULL UNIQUE, |
| 120 | "User" TEXT NOT NULL, |
| 121 | "Computer" TEXT NOT NULL, |
| 122 | "LocalPath" TEXT NOT NULL, |
| 123 | "Note" TEXT, |
| 124 | "Date" BIGINT |
| 125 | );` |
| 126 | _, err = dbms.database.Exec(createTableQuery) |
| 127 | |
| 128 | createTableQuery = `CREATE TABLE IF NOT EXISTS "Agents" ( |
| 129 | "Id" TEXT NOT NULL UNIQUE, |
| 130 | "Crc" TEXT NOT NULL, |
| 131 | "Name" TEXT NOT NULL, |