Skip to content
This repository was archived by the owner on Aug 21, 2022. It is now read-only.

Commit 1bf5712

Browse files
committed
🐛 (model) fix unique index
1 parent 7574313 commit 1bf5712

14 files changed

+37
-16
lines changed

app/models/mixin_group.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
#
1818
# Indexes
1919
#
20-
# index_mixin_groups_on_conversation_id (conversation_id)
20+
# index_mixin_groups_on_conversation_id (conversation_id) UNIQUE
2121
# index_mixin_groups_on_creator_id (creator_id)
2222
#
2323
class MixinGroup < ApplicationRecord

app/models/multisig_account.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
#
1717
# Indexes
1818
#
19-
# index_multisig_accounts_on_account_hash (account_hash)
19+
# index_multisig_accounts_on_account_hash (account_hash) UNIQUE
2020
# index_multisig_accounts_on_creator_id (creator_id)
2121
# index_multisig_accounts_on_member_uuids (member_uuids)
2222
#

app/models/multisig_payment.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,11 @@
2121
#
2222
# Indexes
2323
#
24+
# index_multisig_payments_on_code_id (code_id) UNIQUE
2425
# index_multisig_payments_on_creator_id (creator_id)
2526
# index_multisig_payments_on_multisig_account_id (multisig_account_id)
2627
# index_multisig_payments_on_receivers (receivers)
28+
# index_multisig_payments_on_trace_id (trace_id) UNIQUE
2729
#
2830
class MultisigPayment < ApplicationRecord
2931
belongs_to :creator, class_name: 'User', foreign_key: :creator_id, inverse_of: :created_payments

app/models/multisig_transaction.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
# raw_transaction :string
1111
# receiver_uuids :uuid is an Array
1212
# sender_uuids :uuid is an Array
13-
# signer_uuids :uuid default("{}"), is an Array
13+
# signer_uuids :uuid default([]), is an Array
1414
# status :string
1515
# threshold :integer
1616
# transaction_hash :string
@@ -25,7 +25,7 @@
2525
# index_multisig_transactions_on_multisig_account_id (multisig_account_id)
2626
# index_multisig_transactions_on_receiver_uuids (receiver_uuids)
2727
# index_multisig_transactions_on_sender_uuids (sender_uuids)
28-
# index_multisig_transactions_on_transaction_hash (transaction_hash)
28+
# index_multisig_transactions_on_transaction_hash (transaction_hash) UNIQUE
2929
# index_multisig_transactions_on_user_id (user_id)
3030
#
3131
class MultisigTransaction < ApplicationRecord
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
class AddIndexToMixinGroupAccountPaymentTransaction < ActiveRecord::Migration[6.0]
2+
def change
3+
remove_index :mixin_groups, :conversation_id
4+
remove_index :multisig_accounts, :account_hash
5+
remove_index :multisig_transactions, :transaction_hash
6+
7+
add_index :mixin_groups, :conversation_id, unique: true
8+
add_index :multisig_accounts, :account_hash, unique: true
9+
add_index :multisig_payments, :code_id, unique: true
10+
add_index :multisig_payments, :trace_id, unique: true
11+
add_index :multisig_transactions, :transaction_hash, unique: true
12+
end
13+
end

db/schema.rb

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
#
1111
# It's strongly recommended that you check this file into your version control system.
1212

13-
ActiveRecord::Schema.define(version: 2020_03_13_073024) do
13+
ActiveRecord::Schema.define(version: 2020_03_24_081819) do
1414

1515
# These are extensions that must be enabled in order to support this database
1616
enable_extension "pgcrypto"
@@ -48,7 +48,7 @@
4848
t.json "data"
4949
t.datetime "created_at", precision: 6, null: false
5050
t.datetime "updated_at", precision: 6, null: false
51-
t.index ["conversation_id"], name: "index_mixin_groups_on_conversation_id"
51+
t.index ["conversation_id"], name: "index_mixin_groups_on_conversation_id", unique: true
5252
t.index ["creator_id"], name: "index_mixin_groups_on_creator_id"
5353
end
5454

@@ -87,7 +87,7 @@
8787
t.string "account_hash"
8888
t.datetime "created_at", precision: 6, null: false
8989
t.datetime "updated_at", precision: 6, null: false
90-
t.index ["account_hash"], name: "index_multisig_accounts_on_account_hash"
90+
t.index ["account_hash"], name: "index_multisig_accounts_on_account_hash", unique: true
9191
t.index ["creator_id"], name: "index_multisig_accounts_on_creator_id"
9292
t.index ["member_uuids"], name: "index_multisig_accounts_on_member_uuids"
9393
end
@@ -106,9 +106,11 @@
106106
t.json "data"
107107
t.datetime "created_at", precision: 6, null: false
108108
t.datetime "updated_at", precision: 6, null: false
109+
t.index ["code_id"], name: "index_multisig_payments_on_code_id", unique: true
109110
t.index ["creator_id"], name: "index_multisig_payments_on_creator_id"
110111
t.index ["multisig_account_id"], name: "index_multisig_payments_on_multisig_account_id"
111112
t.index ["receivers"], name: "index_multisig_payments_on_receivers"
113+
t.index ["trace_id"], name: "index_multisig_payments_on_trace_id", unique: true
112114
end
113115

114116
create_table "multisig_transactions", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
@@ -129,7 +131,7 @@
129131
t.index ["multisig_account_id"], name: "index_multisig_transactions_on_multisig_account_id"
130132
t.index ["receiver_uuids"], name: "index_multisig_transactions_on_receiver_uuids"
131133
t.index ["sender_uuids"], name: "index_multisig_transactions_on_sender_uuids"
132-
t.index ["transaction_hash"], name: "index_multisig_transactions_on_transaction_hash"
134+
t.index ["transaction_hash"], name: "index_multisig_transactions_on_transaction_hash", unique: true
133135
t.index ["user_id"], name: "index_multisig_transactions_on_user_id"
134136
end
135137

test/fixtures/mixin_groups.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
#
1616
# Indexes
1717
#
18-
# index_mixin_groups_on_conversation_id (conversation_id)
18+
# index_mixin_groups_on_conversation_id (conversation_id) UNIQUE
1919
# index_mixin_groups_on_creator_id (creator_id)
2020
#
2121

test/fixtures/multisig_accounts.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
#
1515
# Indexes
1616
#
17-
# index_multisig_accounts_on_account_hash (account_hash)
17+
# index_multisig_accounts_on_account_hash (account_hash) UNIQUE
1818
# index_multisig_accounts_on_creator_id (creator_id)
1919
# index_multisig_accounts_on_member_uuids (member_uuids)
2020
#

test/fixtures/multisig_payments.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,11 @@
1919
#
2020
# Indexes
2121
#
22+
# index_multisig_payments_on_code_id (code_id) UNIQUE
2223
# index_multisig_payments_on_creator_id (creator_id)
2324
# index_multisig_payments_on_multisig_account_id (multisig_account_id)
2425
# index_multisig_payments_on_receivers (receivers)
26+
# index_multisig_payments_on_trace_id (trace_id) UNIQUE
2527
#
2628

2729
# This model initially had no columns defined. If you add columns to the

test/fixtures/multisig_transactions.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
# raw_transaction :string
99
# receiver_uuids :uuid is an Array
1010
# sender_uuids :uuid is an Array
11-
# signer_uuids :uuid default("{}"), is an Array
11+
# signer_uuids :uuid default([]), is an Array
1212
# status :string
1313
# threshold :integer
1414
# transaction_hash :string
@@ -23,7 +23,7 @@
2323
# index_multisig_transactions_on_multisig_account_id (multisig_account_id)
2424
# index_multisig_transactions_on_receiver_uuids (receiver_uuids)
2525
# index_multisig_transactions_on_sender_uuids (sender_uuids)
26-
# index_multisig_transactions_on_transaction_hash (transaction_hash)
26+
# index_multisig_transactions_on_transaction_hash (transaction_hash) UNIQUE
2727
# index_multisig_transactions_on_user_id (user_id)
2828
#
2929

0 commit comments

Comments
 (0)