TransactionTimestamps
Transaction timestamps sets a Rails model's created_at
and updated_at
timestamps to the database transaction time,
rather than the current time. This is useful for aligning the timestamps of different models saved within a single
transaction to be exactly the same.
Requirements
transaction_timestamps
depends on Rails >= 4.2
Installation
Add this line to your application's Gemfile:
gem 'transaction_timestamps'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install transaction_timestamps
Usage
In an initializer (eg. config/initializers/transaction_timestamps.rb
), flag on transaction timestamps:
TransactionTimestamps.enabled = true
Any models created or updated within a transaction will then get the transaction timestamp.
Note: For postgresql databases, the timestamp is generated from a SQL query for the actual transaction time. For other databases (where querying the transaction time is not supported), the current system time as of the first timestamping event in the transaction is used.
Contributing
Install all depedencies with appraisal install
. Run tests on all supported systems with appraisal rspec
.
Bug reports and pull requests are welcome on GitHub at https://github.com/coupa/transaction_timestamps.
License
The gem is available as open source under the terms of the MIT License.