module Prostore::Schema::Fingerprint

Overview

A stable hash over a model's Definition (ADR-0009 invariant 4).

The fingerprint identifies a target schema state, not a labeling. Names are excluded from the hash so a rename does not change the fingerprint — renames are pure label changes per ADR-0002. Fields, indexes, and FKs are sorted by tag so declaration order doesn't affect the result.

The fingerprint is the basis for ADR-0009's version-skew check: an app booting against an in-progress migration must compute the same target hash as the migration was started with, or it refuses to start.

Defined in:

prostore/schema/fingerprint.cr

Class Method Summary

Class Method Detail

def self.compute(definition : Definition) : String #

[View source]