All Projects → mceachen → Monogamy

mceachen / Monogamy

Licence: mit
Add table-level database locking to ActiveRecord

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Monogamy

With advisory lock
Advisory locking for ActiveRecord
Stars: ✭ 409 (+3308.33%)
Mutual labels:  activerecord, mysql, postgresql, postgres
Jennifer.cr
Crystal ORM using ActiveRecord pattern with flexible query DSL
Stars: ✭ 309 (+2475%)
Mutual labels:  activerecord, mysql, postgresql
Schemats
Generate typescript interface definitions from SQL database schema
Stars: ✭ 799 (+6558.33%)
Mutual labels:  mysql, postgresql, postgres
Deno Nessie
A modular Deno library for PostgreSQL, MySQL, MariaDB and SQLite migrations
Stars: ✭ 381 (+3075%)
Mutual labels:  mysql, postgresql, postgres
Dbq
Zero boilerplate database operations for Go
Stars: ✭ 273 (+2175%)
Mutual labels:  mysql, postgresql, postgres
Pg party
ActiveRecord PostgreSQL Partitioning
Stars: ✭ 294 (+2350%)
Mutual labels:  activerecord, postgresql, postgres
Sqlx
🧰 The Rust SQL Toolkit. An async, pure Rust SQL crate featuring compile-time checked queries without a DSL. Supports PostgreSQL, MySQL, SQLite, and MSSQL.
Stars: ✭ 5,039 (+41891.67%)
Mutual labels:  mysql, postgresql, postgres
Querybuilder
SQL query builder, written in c#, helps you build complex queries easily, supports SqlServer, MySql, PostgreSql, Oracle, Sqlite and Firebird
Stars: ✭ 2,111 (+17491.67%)
Mutual labels:  activerecord, mysql, postgresql
Openrecord
Make ORMs great again!
Stars: ✭ 474 (+3850%)
Mutual labels:  activerecord, mysql, postgresql
Search cop
Search engine like fulltext query support for ActiveRecord
Stars: ✭ 660 (+5400%)
Mutual labels:  activerecord, mysql, postgres
Xorm
Simple and Powerful ORM for Go, support mysql,postgres,tidb,sqlite3,mssql,oracle, Moved to https://gitea.com/xorm/xorm
Stars: ✭ 6,464 (+53766.67%)
Mutual labels:  mysql, postgresql, postgres
Metabase
The simplest, fastest way to get business intelligence and analytics to everyone in your company 😋
Stars: ✭ 26,803 (+223258.33%)
Mutual labels:  mysql, postgresql, postgres
Pg chameleon
MySQL to PostgreSQL replica system
Stars: ✭ 274 (+2183.33%)
Mutual labels:  mysql, postgresql, postgres
Yiigo
🔥 Go 轻量级开发通用库 🚀🚀🚀
Stars: ✭ 304 (+2433.33%)
Mutual labels:  mysql, postgresql, postgres
Activerecord Postgres enum
Integrate PostgreSQL's enum data type into ActiveRecord's schema and migrations.
Stars: ✭ 227 (+1791.67%)
Mutual labels:  activerecord, postgresql, postgres
Jet
Type safe SQL builder with code generation and automatic query result data mapping
Stars: ✭ 373 (+3008.33%)
Mutual labels:  mysql, postgresql, postgres
Activerecord Clean Db Structure
Automatic cleanup for the Rails db/structure.sql file (ActiveRecord/PostgreSQL)
Stars: ✭ 101 (+741.67%)
Mutual labels:  activerecord, postgresql, postgres
Calculate All
calculate_all method for aggregate functions in Active Record
Stars: ✭ 118 (+883.33%)
Mutual labels:  activerecord, mysql, postgres
Sqlboiler
Generate a Go ORM tailored to your database schema.
Stars: ✭ 4,497 (+37375%)
Mutual labels:  mysql, postgresql, postgres
Blog
Everything about database,business.(Most for PostgreSQL).
Stars: ✭ 6,330 (+52650%)
Mutual labels:  mysql, postgresql, postgres

Monogamy (archived)

Adds table-level locking to ActiveRecord 4.2 and 5.0. MySQL and PostgreSQL are supported.

Build Status Gem Version Dependency Status

Usage

Tag.with_table_lock do
  Tag.where(name: "example").first_or_create
end

While your code is inside the block, it will have exclusive read and write access to the model's table.

A transaction will be opened and closed for you automatically during your block's execution. There's no need to wrap your call to with_table_lock with a transaction do.

If your block touches other tables, and you use table-level locking on those tables as well, read up about deadlocks. You have been warned.

Installation

Add this line to your application's Gemfile:

gem 'monogamy'

And then execute:

$ bundle

Changelog

0.0.1

  • First whack
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].