# created_at :datetime not null
# updated_at :datetime not null
# last_status_at :datetime
-# lock_version :integer default(0), not null
#
class AccountStat < ApplicationRecord
+ self.locking_column = nil
+
belongs_to :account, inverse_of: :account_stat
update_index('accounts#account', :account)
ON CONFLICT (account_id) DO UPDATE
SET #{key} = account_stats.#{key} + :value,
last_status_at = now(),
- lock_version = account_stats.lock_version + 1,
updated_at = now()
RETURNING id;
SQL
VALUES (:account_id, :default_value, now(), now())
ON CONFLICT (account_id) DO UPDATE
SET #{key} = account_stats.#{key} + :value,
- lock_version = account_stats.lock_version + 1,
updated_at = now()
RETURNING id;
SQL
--- /dev/null
+# frozen_string_literal: true
+
+class RemoveLockVersionFromAccountStats < ActiveRecord::Migration[5.2]
+ def change
+ safety_assured do
+ remove_column :account_stats, :lock_version, :integer, null: false, default: 0
+ end
+ end
+end
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 2021_05_07_001928) do
+ActiveRecord::Schema.define(version: 2021_05_26_193025) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "last_status_at"
- t.integer "lock_version", default: 0, null: false
t.index ["account_id"], name: "index_account_stats_on_account_id", unique: true
end
end
MIN_SUPPORTED_VERSION = 2019_10_01_213028
- MAX_SUPPORTED_VERSION = 2021_05_07_001928
+ MAX_SUPPORTED_VERSION = 2021_05_26_193025
# Stubs to enjoy ActiveRecord queries while not depending on a particular
# version of the code/database