(raw)
| 3257 | db.pragma('foreign_keys = ON'); |
| 3258 | |
| 3259 | // Create tables in sequence |
| 3260 | db.transaction(() => { |
| 3261 | // Create models table |
| 3262 | db.prepare(`CREATE TABLE IF NOT EXISTS models ( |
| 3263 | id INTEGER PRIMARY KEY AUTOINCREMENT, |
| 3264 | filePath TEXT UNIQUE, |
| 3265 | fileName TEXT, |
| 3266 | designer TEXT, |
| 3267 | source TEXT, |
| 3268 | notes TEXT, |
| 3269 | printed INTEGER, |
| 3270 | print_status TEXT DEFAULT 'unprinted', |
| 3271 | print_count INTEGER DEFAULT 0, |
| 3272 | last_printed_at DATETIME, |
| 3273 | thumbnail TEXT, |
| 3274 | parentModel TEXT, |
| 3275 | hash TEXT, |
| 3276 | size INTEGER, |
| 3277 | license TEXT, |
| 3278 | modifiedDate DATETIME, |
| 3279 | dateAdded DATETIME, |
| 3280 | isNew INTEGER DEFAULT 1, |
| 3281 | rating INTEGER DEFAULT 0, |
| 3282 | favorite INTEGER DEFAULT 0, |
| 3283 | bundleKey TEXT, |
| 3284 | bundleLabel TEXT, |
| 3285 | bundleKind TEXT |
| 3286 | )`).run(); |
| 3287 | |
| 3288 | // Create tags table |
| 3289 | db.prepare(`CREATE TABLE IF NOT EXISTS tags ( |
| 3290 | id INTEGER PRIMARY KEY AUTOINCREMENT, |
| 3291 | name TEXT UNIQUE |
| 3292 | )`).run(); |
| 3293 | |
| 3294 | // Create model_tags table |
| 3295 | db.prepare(`CREATE TABLE IF NOT EXISTS model_tags ( |
| 3296 | model_id INTEGER, |
| 3297 | tag_id INTEGER, |
| 3298 | FOREIGN KEY(model_id) REFERENCES models(id), |
| 3299 | FOREIGN KEY(tag_id) REFERENCES tags(id), |
| 3300 | PRIMARY KEY(model_id, tag_id) |
| 3301 | )`).run(); |
| 3302 | |
| 3303 | // Create settings table |
| 3304 | db.prepare(`CREATE TABLE IF NOT EXISTS settings ( |
| 3305 | key TEXT PRIMARY KEY, |
| 3306 | value TEXT |
| 3307 | )`).run(); |
| 3308 | |
| 3309 | // Create slicers table |
| 3310 | db.prepare(`CREATE TABLE IF NOT EXISTS slicers ( |
| 3311 | id INTEGER PRIMARY KEY AUTOINCREMENT, |
| 3312 | name TEXT NOT NULL, |
| 3313 | path TEXT NOT NULL |
no outgoing calls
no test coverage detected