struct Prostore::Schema::Definition

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.cr

Constructors

Instance Method Summary

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)) #

[View source]

Instance Method Detail

def clone #

[View source]
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) #

[View source]
def field(tag : Int32) : Field | Nil #

[View source]
def field(name : String) : Field | Nil #

[View source]
def field(name : Symbol) : Field | Nil #

[View source]
def fields : Array(Field) #

def foreign_keys : Array(ForeignKey) #

def indexes : Array(Index) #

def primary_key : Field | Nil #

[View source]
def queries : Array(Query) #

def reserved_field_tags : Array(Int32) #

def reserved_foreign_key_tags : Array(Int32) #

def reserved_index_tags : Array(Int32) #

def table_name : String #