Files
darroyo 63e0b5146a fix: tolerate duplicate column errors in migration runner
The previous SAVEPOINT approach failed because Go's tx.Exec() stops at
the first error and never reaches the ROLLBACK TO statements. This caused
every subsequent startup to re-run migration 0002, fail on the first
ALTER (column already exists from a prior partial run), and crash.

Fix runMigration() to:
- Execute migrations without a wrapping transaction (DDL in SQLite is
  auto-commit anyway)
- Treat "duplicate column name" / "already exists" errors as success
  and record the migration anyway, covering cases where a previous
  failed attempt already partially modified the schema

Also simplify 0002_nfs_structured.sql back to plain ALTER TABLE
statements (no SAVEPOINT needed with the new Go-level tolerance).

Bump VERSION 0.1.9 -> 0.1.10
2026-07-06 00:05:02 -04:00

9 lines
536 B
SQL

ALTER TABLE nfs_exports ADD COLUMN read_only INTEGER NOT NULL DEFAULT 0;
ALTER TABLE nfs_exports ADD COLUMN async_ INTEGER NOT NULL DEFAULT 0;
ALTER TABLE nfs_exports ADD COLUMN root_squash INTEGER NOT NULL DEFAULT 1;
ALTER TABLE nfs_exports ADD COLUMN subtree_check INTEGER NOT NULL DEFAULT 0;
ALTER TABLE nfs_exports ADD COLUMN fsid INTEGER NOT NULL DEFAULT 0;
ALTER TABLE nfs_exports ADD COLUMN advanced TEXT NOT NULL DEFAULT '{}';
CREATE INDEX IF NOT EXISTS idx_nfs_exports_fsid ON nfs_exports(fsid);