26 lines
371 B
Go
26 lines
371 B
Go
package schema
|
|
|
|
import (
|
|
"crypto/sha256"
|
|
_ "embed"
|
|
"encoding/hex"
|
|
"sync"
|
|
)
|
|
|
|
//go:embed schema.sql
|
|
var schemaFile []byte
|
|
|
|
var (
|
|
hashOnce sync.Once
|
|
hash string
|
|
)
|
|
|
|
// Hash returns the SHA-256 hash of the canonical schema.sql file.
|
|
func Hash() string {
|
|
hashOnce.Do(func() {
|
|
sum := sha256.Sum256(schemaFile)
|
|
hash = hex.EncodeToString(sum[:])
|
|
})
|
|
return hash
|
|
}
|