module Onyx::SQL

Overview

An SQL ORM for Crystal.

Defined in:

lib/onyx-sql/src/onyx-sql/bulk_query/delete.cr
lib/onyx-sql/src/onyx-sql/bulk_query/insert.cr
lib/onyx-sql/src/onyx-sql/bulk_query/returning.cr
lib/onyx-sql/src/onyx-sql/bulk_query/where.cr
lib/onyx-sql/src/onyx-sql/bulk_query.cr
lib/onyx-sql/src/onyx-sql/query/delete.cr
lib/onyx-sql/src/onyx-sql/query/group_by.cr
lib/onyx-sql/src/onyx-sql/query/having.cr
lib/onyx-sql/src/onyx-sql/query/insert.cr
lib/onyx-sql/src/onyx-sql/query/join.cr
lib/onyx-sql/src/onyx-sql/query/limit.cr
lib/onyx-sql/src/onyx-sql/query/offset.cr
lib/onyx-sql/src/onyx-sql/query/order_by.cr
lib/onyx-sql/src/onyx-sql/query/returning.cr
lib/onyx-sql/src/onyx-sql/query/select.cr
lib/onyx-sql/src/onyx-sql/query/set.cr
lib/onyx-sql/src/onyx-sql/query/update.cr
lib/onyx-sql/src/onyx-sql/query/where.cr
lib/onyx-sql/src/onyx-sql/query/wherish.cr
lib/onyx-sql/src/onyx-sql/query.cr
lib/onyx-sql/src/onyx-sql/repository/exec.cr
lib/onyx-sql/src/onyx-sql/repository/logger.cr
lib/onyx-sql/src/onyx-sql/repository/query.cr
lib/onyx-sql/src/onyx-sql/repository/scalar.cr
lib/onyx-sql/src/onyx-sql/repository.cr
lib/onyx-sql/src/onyx-sql.cr
onyx/sql.cr

Class Method Summary

Class Method Detail

def self.exec(*args, **nargs) #

Call #exec on the singleton .repo instance.


[View source]
def self.query(*args, **nargs) #

Call #query on the singleton .repo instance.


[View source]
def self.repo : Onyx::SQL::Repository #

Singleton Onyx::SQL::Repository instance. Has Onyx.db as a db and and Onyx.logger as a logger.


[View source]
def self.repo=(repo : Onyx::SQL::Repository) #

Singleton Onyx::SQL::Repository instance. Has Onyx.db as a db and and Onyx.logger as a logger.


[View source]
def self.scalar(*args, **nargs) #

Call #scalar on the singleton .repo instance.


[View source]
def self.transaction(&block : DB::Transaction -> ) #

Put the .repo's current database connection into transaction mode and yield that DB::Transaction object.

All repository requests would be made within the transaction. The transaction is closed after the yield unless it's explicitly closed before (i.e. committed or rolled back).

Onyx::SQL.transaction do |tx|
  Onyx.query(User.where(id: 1)) # Request is made within the transaction
  tx.connection                 # You have access to the raw `DB::Connection` instance
end

[View source]