scribe-cms 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/runtime.cjs CHANGED
@@ -420,7 +420,7 @@ function seoFieldsFromEn(enDoc) {
420
420
  redirectTo: enDoc.redirectTo
421
421
  };
422
422
  }
423
- var SCHEMA_VERSION = 3;
423
+ var SCHEMA_VERSION = 4;
424
424
  var MIGRATIONS = [
425
425
  `CREATE TABLE IF NOT EXISTS meta (
426
426
  key TEXT PRIMARY KEY,
@@ -440,20 +440,6 @@ var MIGRATIONS = [
440
440
  )`,
441
441
  `CREATE INDEX IF NOT EXISTS idx_translations_type_locale
442
442
  ON translations(content_type, locale)`,
443
- `CREATE TABLE IF NOT EXISTS revisions (
444
- id INTEGER PRIMARY KEY AUTOINCREMENT,
445
- content_type TEXT NOT NULL,
446
- en_slug TEXT NOT NULL,
447
- locale TEXT,
448
- revision_kind TEXT NOT NULL,
449
- en_hash TEXT NOT NULL,
450
- body_hash TEXT NOT NULL,
451
- created_at TEXT NOT NULL,
452
- model TEXT,
453
- body_preview TEXT
454
- )`,
455
- `CREATE INDEX IF NOT EXISTS idx_revisions_lookup
456
- ON revisions(content_type, en_slug, locale, created_at DESC)`,
457
443
  `CREATE TABLE IF NOT EXISTS slug_aliases (
458
444
  content_type TEXT NOT NULL,
459
445
  canonical_en_slug TEXT NOT NULL,
@@ -470,7 +456,19 @@ var MIGRATIONS = [
470
456
  locale_slug TEXT NOT NULL,
471
457
  captured_at TEXT NOT NULL,
472
458
  PRIMARY KEY (content_type, alias_en_slug, locale)
473
- )`
459
+ )`,
460
+ `CREATE TABLE IF NOT EXISTS en_snapshots (
461
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
462
+ content_type TEXT NOT NULL,
463
+ en_slug TEXT NOT NULL,
464
+ en_hash TEXT NOT NULL,
465
+ frontmatter_json TEXT NOT NULL,
466
+ body TEXT NOT NULL,
467
+ created_at TEXT NOT NULL,
468
+ UNIQUE (content_type, en_slug, en_hash)
469
+ )`,
470
+ `CREATE INDEX IF NOT EXISTS idx_en_snapshots_lookup
471
+ ON en_snapshots(content_type, en_slug, created_at DESC)`
474
472
  ];
475
473
  function resolveStorePath(config) {
476
474
  return config.storePath;
@@ -492,12 +490,19 @@ function addColumnIfMissing(db, table, column, ddlType) {
492
490
  db.exec(`ALTER TABLE ${table} ADD COLUMN ${column} ${ddlType}`);
493
491
  }
494
492
  }
493
+ function readSchemaVersion(db) {
494
+ const row = db.prepare(`SELECT value FROM meta WHERE key = 'schema_version'`).get();
495
+ return row ? Number.parseInt(row.value, 10) || 0 : 0;
496
+ }
495
497
  function migrate(db) {
498
+ const previousVersion = readSchemaVersion(db);
496
499
  for (const sql of MIGRATIONS) {
497
500
  db.exec(sql);
498
501
  }
499
- addColumnIfMissing(db, "revisions", "frontmatter_json", "TEXT");
500
- addColumnIfMissing(db, "revisions", "body", "TEXT");
502
+ if (previousVersion < 4) {
503
+ db.exec(`DROP TABLE IF EXISTS revisions`);
504
+ }
505
+ addColumnIfMissing(db, "translations", "snapshot_id", "INTEGER");
501
506
  db.prepare(
502
507
  `INSERT INTO meta(key, value) VALUES('schema_version', ?)
503
508
  ON CONFLICT(key) DO UPDATE SET value = excluded.value`