struct
Prostore::Schema::Definition
- Prostore::Schema::Definition
- Struct
- Value
- Object
Overview
The complete schema captured for a single model class.
Populated by the macros at compile time and exposed via
Class.prostore_schema. The diff engine, drift detector, and migration
planner consume this struct (and the live DB introspection) to compute
the work that needs doing.
Defined in:
prostore/schema.crConstructors
Instance Method Summary
- #clone
- #copy_with(table_name _table_name = @table_name, fields _fields = @fields, indexes _indexes = @indexes, foreign_keys _foreign_keys = @foreign_keys, queries _queries = @queries, reserved_field_tags _reserved_field_tags = @reserved_field_tags, reserved_index_tags _reserved_index_tags = @reserved_index_tags, reserved_foreign_key_tags _reserved_foreign_key_tags = @reserved_foreign_key_tags)
- #field(tag : Int32) : Field | Nil
- #field(name : String) : Field | Nil
- #field(name : Symbol) : Field | Nil
- #fields : Array(Field)
- #foreign_keys : Array(ForeignKey)
- #indexes : Array(Index)
- #primary_key : Field | Nil
- #queries : Array(Query)
- #reserved_field_tags : Array(Int32)
- #reserved_foreign_key_tags : Array(Int32)
- #reserved_index_tags : Array(Int32)
- #table_name : String
Constructor Detail
def self.new(table_name : String, fields : Array(Field), indexes : Array(Index), foreign_keys : Array(ForeignKey), queries : Array(Query), reserved_field_tags : Array(Int32), reserved_index_tags : Array(Int32), reserved_foreign_key_tags : Array(Int32))
#
Instance Method Detail
def copy_with(table_name _table_name = @table_name, fields _fields = @fields, indexes _indexes = @indexes, foreign_keys _foreign_keys = @foreign_keys, queries _queries = @queries, reserved_field_tags _reserved_field_tags = @reserved_field_tags, reserved_index_tags _reserved_index_tags = @reserved_index_tags, reserved_foreign_key_tags _reserved_foreign_key_tags = @reserved_foreign_key_tags)
#