orm

A Crystal ORM

ORM

An object relational mapper for Crystal.

An example model

model User do # or class User < ORM::Model
  schema do # everything in schema should map to a change in SQL
    table "users"
    primary_key id : UUID, column_type: "uuid", default: uuid_generate_v4()
    field first_name : String
    field last_name : String, column_type: "string", column_name: "lastName", unique: true, default: "some value"
    field age : Int32

    has_many posts : BlogPost, foreign_key: "author_id", primary_key: "id"
    belongs_to organization : Organization, foreign_key: "organization_id", primary_key: "id"
    has_and_belongs_to_many categories : Category, reference_key: "user_id", other_reference_key: "category_id", join_table: "categories_users"
    has_many comments : Comment, through: posts

    constraint check: "age > 13"
  end

  # ... application specific logic
end
Repository

orm

Owner
Statistic
  • 1
  • 0
  • 1
  • 0
  • 0
  • over 6 years ago
  • December 21, 2017
License

MIT License

Links
Synced at

Tue, 07 May 2024 04:54:09 GMT

Languages