diff --git a/internal/db/db.go b/internal/db/db.go index eb5aadb..d6d29c9 100644 --- a/internal/db/db.go +++ b/internal/db/db.go @@ -9,6 +9,7 @@ import ( "sort" "strings" + "github.com/darroyo/nasctl/internal/system" _ "modernc.org/sqlite" ) @@ -212,7 +213,15 @@ func (d *DB) MigrateNFSClients() error { } for _, r := range toUpdate { - if _, err := d.conn.Exec(`UPDATE nfs_exports SET clients = ? WHERE id = ?`, r.Clients, r.ID); err != nil { + fsid := r.FSID + if fsid == 0 { + n, err := system.GenerateRandomFSID() + if err != nil { + return fmt.Errorf("generate fsid for id %d: %w", r.ID, err) + } + fsid = int64(n) + } + if _, err := d.conn.Exec(`UPDATE nfs_exports SET clients = ?, fsid = ? WHERE id = ?`, r.Clients, fsid, r.ID); err != nil { return fmt.Errorf("update nfs export id %d: %w", r.ID, err) } }