bridge_cache 0.3.19 → 0.3.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +1 -1
- data/app/lib/bridge_cache/data/bridge_model.rb +76 -68
- data/app/lib/bridge_cache/jobs/cleanup_job.rb +6 -4
- data/app/lib/bridge_cache/jobs/import_check.rb +29 -20
- data/app/lib/bridge_cache/jobs/import_data.rb +24 -17
- data/app/lib/bridge_cache/jobs/import_row.rb +7 -5
- data/app/lib/bridge_cache/jobs/import_start.rb +13 -14
- data/app/lib/bridge_cache/plugins/csv_dump.rb +89 -79
- data/app/lib/bridge_cache/plugins/data_transform.rb +18 -13
- data/app/lib/bridge_cache/utils/worker_helper.rb +9 -6
- data/app/lib/bridge_cache/webhooks/message.rb +13 -11
- data/app/lib/bridge_cache/webhooks/request.rb +10 -8
- data/app/models/bridge_cache/affiliated_sub_account.rb +12 -7
- data/app/models/bridge_cache/course_template.rb +21 -9
- data/app/models/bridge_cache/custom_field.rb +4 -2
- data/app/models/bridge_cache/domain.rb +14 -7
- data/app/models/bridge_cache/enrollment.rb +4 -2
- data/app/models/bridge_cache/enrollment_profile.rb +4 -4
- data/app/models/bridge_cache/grant.rb +4 -2
- data/app/models/bridge_cache/group.rb +10 -5
- data/app/models/bridge_cache/group_enrollment.rb +5 -3
- data/app/models/bridge_cache/host.rb +3 -2
- data/app/models/bridge_cache/learner_custom_field_value.rb +4 -2
- data/app/models/bridge_cache/live_course.rb +15 -6
- data/app/models/bridge_cache/live_course_enrollment.rb +8 -4
- data/app/models/bridge_cache/live_course_session.rb +9 -4
- data/app/models/bridge_cache/live_course_session_registration.rb +9 -5
- data/app/models/bridge_cache/membership.rb +5 -3
- data/app/models/bridge_cache/program.rb +17 -7
- data/app/models/bridge_cache/program_enrollment.rb +4 -2
- data/app/models/bridge_cache/program_group_enrollment.rb +4 -2
- data/app/models/bridge_cache/program_item.rb +2 -1
- data/app/models/bridge_cache/tag.rb +3 -2
- data/app/models/bridge_cache/tagging.rb +5 -3
- data/app/models/bridge_cache/user.rb +20 -10
- data/app/models/bridge_cache/user_course_visit.rb +6 -3
- data/db/migrate/20170517203244_create_bridge_cache_domains.rb +1 -0
- data/db/migrate/20170517203328_create_bridge_cache_users.rb +1 -0
- data/db/migrate/20170517203421_create_bridge_cache_programs.rb +1 -0
- data/db/migrate/20170517204055_create_bridge_cache_custom_fields.rb +1 -0
- data/db/migrate/20170517204248_create_bridge_cache_grants.rb +1 -0
- data/db/migrate/20170518211404_create_bridge_cache_enrollments.rb +1 -0
- data/db/migrate/20170518211627_create_bridge_cache_groups.rb +1 -0
- data/db/migrate/20170518211703_create_bridge_cache_program_items.rb +1 -0
- data/db/migrate/20170518211714_create_bridge_cache_program_enrollments.rb +1 -0
- data/db/migrate/20170518211736_create_bridge_cache_program_group_enrollments.rb +1 -0
- data/db/migrate/20170518211748_create_bridge_cache_tags.rb +1 -0
- data/db/migrate/20170518211754_create_bridge_cache_taggings.rb +1 -0
- data/db/migrate/20170518211817_create_bridge_cache_course_templates.rb +1 -0
- data/db/migrate/20170523164248_create_bridge_cache_group_enrollments.rb +1 -0
- data/db/migrate/20170523165014_create_bridge_cache_memberships.rb +1 -0
- data/db/migrate/20170615145554_create_bridge_cache_learner_custom_field_values.rb +1 -0
- data/db/migrate/20171017211850_create_affiliated_sub_accounts.rb +1 -0
- data/db/migrate/20171019195443_create_live_courses.rb +1 -0
- data/db/migrate/20171019195503_create_live_course_enrollments.rb +1 -0
- data/db/migrate/20171019195512_create_live_course_session_registrations.rb +1 -0
- data/db/migrate/20171019195516_create_live_course_sessions.rb +1 -0
- data/db/migrate/20171031165231_add_indexes.rb +5 -2
- data/db/migrate/20180316205458_create_bridge_cache_enrollment_profiles.rb +1 -0
- data/db/migrate/20180320190443_add_index_to_enrollment_profile.rb +1 -0
- data/db/migrate/20180406204906_add_uniq_constraints.rb +43 -21
- data/db/migrate/20180801162929_create_bridge_cache_hosts.rb +1 -0
- data/db/migrate/20180925210056_add_bridge_timestamps_to_bridge_models.rb +1 -0
- data/db/migrate/20190801163930_create_user_course_visits.rb +3 -1
- data/db/migrate/20200717142423_add_hris_id_to_bridge_cache_users.rb +1 -0
- data/lib/bridge_cache.rb +1 -0
- data/lib/bridge_cache/version.rb +1 -1
- metadata +16 -2
@@ -2,13 +2,15 @@ module BridgeCache
|
|
2
2
|
class Membership < ApplicationRecord
|
3
3
|
extend BridgeCache::Data::BridgeModel
|
4
4
|
|
5
|
-
belongs_to :group, foreign_key: :group_id, primary_key: BridgeCache.primary_key,
|
6
|
-
|
5
|
+
belongs_to :group, foreign_key: :group_id, primary_key: BridgeCache.primary_key,
|
6
|
+
class_name: BridgeCache::Group.name, optional: true
|
7
|
+
belongs_to :user, foreign_key: :group_id, primary_key: BridgeCache.primary_key,
|
8
|
+
class_name: BridgeCache::User.name, optional: true
|
7
9
|
|
8
10
|
def self.for_domain(domain_id)
|
9
11
|
joins(:group).where(bridge_cache_groups: { domain_id: domain_id })
|
10
12
|
end
|
11
|
-
|
13
|
+
|
12
14
|
def self.unique_column_names
|
13
15
|
%w[bridge_id]
|
14
16
|
end
|
@@ -2,17 +2,27 @@ module BridgeCache
|
|
2
2
|
class Program < BridgeBaseModel
|
3
3
|
extend BridgeCache::Data::BridgeModel
|
4
4
|
|
5
|
-
belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key,
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
has_many :
|
10
|
-
|
5
|
+
belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key,
|
6
|
+
class_name: BridgeCache::Domain.name, optional: true
|
7
|
+
belongs_to :sub_account, foreign_key: :sub_account_id, primary_key: BridgeCache.primary_key,
|
8
|
+
class_name: BridgeCache::Domain.name, optional: true
|
9
|
+
has_many :program_items, foreign_key: :program_id, primary_key: BridgeCache.primary_key,
|
10
|
+
class_name: BridgeCache::ProgramItem.name
|
11
|
+
has_many :program_enrollments, foreign_key: :program_id, primary_key: BridgeCache.primary_key,
|
12
|
+
class_name: BridgeCache::ProgramEnrollment.name
|
13
|
+
has_many :program_group_enrollments, foreign_key: :program_id, primary_key: BridgeCache.primary_key,
|
14
|
+
class_name: BridgeCache::ProgramGroupEnrollment.name
|
15
|
+
has_many :affiliated_sub_accounts, primary_key: BridgeCache.primary_key,
|
16
|
+
class_name: BridgeCache::AffiliatedSubAccount.name, as: :item
|
11
17
|
has_many :domains, through: :affiliated_sub_accounts
|
12
18
|
|
13
19
|
def self.for_domain(domain_id)
|
14
20
|
includes(:domains)
|
15
|
-
.where(
|
21
|
+
.where(
|
22
|
+
'bridge_cache_affiliated_sub_accounts.domain_id = ? OR bridge_cache_programs.sub_account_id = ?',
|
23
|
+
domain_id,
|
24
|
+
domain_id
|
25
|
+
)
|
16
26
|
.references(:domains)
|
17
27
|
end
|
18
28
|
|
@@ -2,8 +2,10 @@ module BridgeCache
|
|
2
2
|
class ProgramEnrollment < BridgeBaseModel
|
3
3
|
extend BridgeCache::Data::BridgeModel
|
4
4
|
|
5
|
-
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
6
|
-
|
5
|
+
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
6
|
+
optional: true
|
7
|
+
belongs_to :program, foreign_key: :program_id, primary_key: BridgeCache.primary_key,
|
8
|
+
class_name: BridgeCache::Program.name, optional: true
|
7
9
|
|
8
10
|
def self.for_domain(domain_id)
|
9
11
|
joins(:program).merge(BridgeCache::Program.for_domain(domain_id))
|
@@ -2,8 +2,10 @@ module BridgeCache
|
|
2
2
|
class ProgramGroupEnrollment < BridgeBaseModel
|
3
3
|
extend BridgeCache::Data::BridgeModel
|
4
4
|
|
5
|
-
belongs_to :group, foreign_key: :group_id, primary_key: BridgeCache.primary_key,
|
6
|
-
|
5
|
+
belongs_to :group, foreign_key: :group_id, primary_key: BridgeCache.primary_key,
|
6
|
+
class_name: BridgeCache::Group.name, optional: true
|
7
|
+
belongs_to :program, foreign_key: :program_id, primary_key: BridgeCache.primary_key,
|
8
|
+
class_name: BridgeCache::Program.name, optional: true
|
7
9
|
|
8
10
|
def self.unique_column_names
|
9
11
|
%w[bridge_id]
|
@@ -2,7 +2,8 @@ module BridgeCache
|
|
2
2
|
class ProgramItem < BridgeBaseModel
|
3
3
|
extend BridgeCache::Data::BridgeModel
|
4
4
|
|
5
|
-
belongs_to :program, foreign_key: :program_id, primary_key: BridgeCache.primary_key,
|
5
|
+
belongs_to :program, foreign_key: :program_id, primary_key: BridgeCache.primary_key,
|
6
|
+
class_name: BridgeCache::Program.name, optional: true
|
6
7
|
|
7
8
|
def self.for_domain(domain_id)
|
8
9
|
joins(:program).merge(BridgeCache::Program.for_domain(domain_id))
|
@@ -2,8 +2,9 @@ module BridgeCache
|
|
2
2
|
class Tag < BridgeBaseModel
|
3
3
|
extend BridgeCache::Data::BridgeModel
|
4
4
|
|
5
|
-
has_many :taggings, foreign_key: :tag_id, primary_key: BridgeCache.primary_key,
|
6
|
-
|
5
|
+
has_many :taggings, foreign_key: :tag_id, primary_key: BridgeCache.primary_key,
|
6
|
+
class_name: BridgeCache::Tagging.name
|
7
|
+
|
7
8
|
def self.unique_column_names
|
8
9
|
%w[bridge_id]
|
9
10
|
end
|
@@ -2,13 +2,15 @@ module BridgeCache
|
|
2
2
|
class Tagging < BridgeBaseModel
|
3
3
|
extend BridgeCache::Data::BridgeModel
|
4
4
|
|
5
|
-
belongs_to :tag, foreign_key: :tag_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::Tag.name,
|
6
|
-
|
5
|
+
belongs_to :tag, foreign_key: :tag_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::Tag.name,
|
6
|
+
optional: true
|
7
|
+
belongs_to :user, foreign_key: :tagger_id, primary_key: BridgeCache.primary_key,
|
8
|
+
class_name: BridgeCache::User.name, optional: true
|
7
9
|
|
8
10
|
def self.cleanup(current_row_ids)
|
9
11
|
BridgeCache::Tagging.where.not(bridge_id: current_row_ids).destroy_all
|
10
12
|
end
|
11
|
-
|
13
|
+
|
12
14
|
def self.unique_column_names
|
13
15
|
%w[bridge_id]
|
14
16
|
end
|
@@ -2,18 +2,28 @@ module BridgeCache
|
|
2
2
|
class User < BridgeBaseModel
|
3
3
|
extend BridgeCache::Data::BridgeModel
|
4
4
|
|
5
|
-
belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key,
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
has_many :
|
5
|
+
belongs_to :domain, foreign_key: :domain_id, primary_key: BridgeCache.primary_key,
|
6
|
+
class_name: BridgeCache::Domain.name, optional: true
|
7
|
+
belongs_to :sub_account, foreign_key: :sub_account_id, primary_key: BridgeCache.primary_key,
|
8
|
+
class_name: BridgeCache::Domain.name, optional: true
|
9
|
+
has_many :enrollments, foreign_key: :user_id, primary_key: BridgeCache.primary_key,
|
10
|
+
class_name: BridgeCache::Enrollment.name
|
11
|
+
has_many :course_templates, foreign_key: :user_id, primary_key: BridgeCache.primary_key,
|
12
|
+
class_name: BridgeCache::CourseTemplate.name
|
13
|
+
has_many :taggings, foreign_key: :user_id, primary_key: BridgeCache.primary_key,
|
14
|
+
class_name: BridgeCache::Tagging.name
|
10
15
|
has_many :grants, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::Grant.name
|
11
16
|
has_many :groups, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::Group.name
|
12
|
-
has_many :program_enrollments, foreign_key: :user_id, primary_key: BridgeCache.primary_key,
|
13
|
-
|
14
|
-
has_many :
|
15
|
-
|
16
|
-
has_many :
|
17
|
+
has_many :program_enrollments, foreign_key: :user_id, primary_key: BridgeCache.primary_key,
|
18
|
+
class_name: BridgeCache::ProgramEnrollment.name
|
19
|
+
has_many :memberships, foreign_key: :user_id, primary_key: BridgeCache.primary_key,
|
20
|
+
class_name: BridgeCache::Membership.name
|
21
|
+
has_many :learner_custom_field_values, foreign_key: :user_id, primary_key: BridgeCache.primary_key,
|
22
|
+
class_name: BridgeCache::LearnerCustomFieldValue.name
|
23
|
+
has_many :live_course_enrollments, foreign_key: :user_id, primary_key: BridgeCache.primary_key,
|
24
|
+
class_name: BridgeCache::LiveCourseEnrollment.name
|
25
|
+
has_many :live_course_session_registrations, foreign_key: :user_id, primary_key: BridgeCache.primary_key,
|
26
|
+
class_name: BridgeCache::LiveCourseSessionRegistration.name
|
17
27
|
|
18
28
|
serialize :config
|
19
29
|
|
@@ -6,9 +6,12 @@ module BridgeCache
|
|
6
6
|
joins(:course_template).merge(BridgeCache::CourseTemplate.for_domain(domain_id))
|
7
7
|
end
|
8
8
|
|
9
|
-
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
10
|
-
|
11
|
-
belongs_to :
|
9
|
+
belongs_to :user, foreign_key: :user_id, primary_key: BridgeCache.primary_key, class_name: BridgeCache::User.name,
|
10
|
+
optional: true
|
11
|
+
belongs_to :enrollment, foreign_key: :enrollment_id, primary_key: BridgeCache.primary_key,
|
12
|
+
class_name: BridgeCache::Enrollment.name, optional: true
|
13
|
+
belongs_to :course_template, foreign_key: :course_template_id, primary_key: BridgeCache.primary_key,
|
14
|
+
class_name: BridgeCache::CourseTemplate.name, optional: true
|
12
15
|
|
13
16
|
def self.unique_column_names
|
14
17
|
%w[token]
|
@@ -1,6 +1,7 @@
|
|
1
1
|
class CreateBridgeCacheProgramGroupEnrollments < ActiveRecord::Migration[5.0]
|
2
2
|
def change
|
3
3
|
return unless BridgeCache.use_internal_database
|
4
|
+
|
4
5
|
create_table :bridge_cache_program_group_enrollments do |t|
|
5
6
|
t.integer :bridge_id, limit: 8
|
6
7
|
t.integer :group_id, limit: 8
|
@@ -1,6 +1,7 @@
|
|
1
1
|
class CreateBridgeCacheLearnerCustomFieldValues < ActiveRecord::Migration[5.1]
|
2
2
|
def change
|
3
3
|
return unless BridgeCache.use_internal_database
|
4
|
+
|
4
5
|
create_table :bridge_cache_learner_custom_field_values do |t|
|
5
6
|
t.integer :bridge_id, limit: 8
|
6
7
|
t.integer :custom_field_id, limit: 8
|
@@ -1,6 +1,7 @@
|
|
1
1
|
class CreateLiveCourseSessionRegistrations < ActiveRecord::Migration[5.1]
|
2
2
|
def change
|
3
3
|
return unless BridgeCache.use_internal_database
|
4
|
+
|
4
5
|
create_table :bridge_cache_live_course_session_registrations do |t|
|
5
6
|
t.integer :bridge_id, limit: 8
|
6
7
|
t.integer :live_course_session_id, limit: 8
|
@@ -1,6 +1,7 @@
|
|
1
1
|
class AddIndexes < ActiveRecord::Migration[5.1]
|
2
2
|
def change
|
3
3
|
return unless BridgeCache.use_internal_database
|
4
|
+
|
4
5
|
add_index :bridge_cache_domains, :bridge_id
|
5
6
|
add_index :bridge_cache_domains, :parent_id
|
6
7
|
add_index :bridge_cache_domains, :owner_id
|
@@ -83,9 +84,11 @@ class AddIndexes < ActiveRecord::Migration[5.1]
|
|
83
84
|
add_index :bridge_cache_live_course_enrollments, :user_id
|
84
85
|
|
85
86
|
add_index :bridge_cache_live_course_session_registrations, :bridge_id, name: 'index_bclcsr_on_bridge_id'
|
86
|
-
add_index :bridge_cache_live_course_session_registrations, :live_course_session_id,
|
87
|
+
add_index :bridge_cache_live_course_session_registrations, :live_course_session_id,
|
88
|
+
name: 'index_bclcsr_on_live_course_session_id'
|
87
89
|
add_index :bridge_cache_live_course_session_registrations, :user_id, name: 'index_bclcsr_on_user_id'
|
88
|
-
add_index :bridge_cache_live_course_session_registrations, :live_course_enrollment_id,
|
90
|
+
add_index :bridge_cache_live_course_session_registrations, :live_course_enrollment_id,
|
91
|
+
name: 'index_bclcsr_on_live_course_enrollment_id'
|
89
92
|
|
90
93
|
add_index :bridge_cache_live_course_sessions, :bridge_id
|
91
94
|
add_index :bridge_cache_live_course_sessions, :live_course_id
|
@@ -1,27 +1,49 @@
|
|
1
1
|
class AddUniqConstraints < ActiveRecord::Migration[5.1]
|
2
2
|
def change
|
3
3
|
return unless BridgeCache.use_internal_database
|
4
|
-
|
5
|
-
add_unique_constraint :
|
6
|
-
|
7
|
-
add_unique_constraint :
|
8
|
-
|
9
|
-
add_unique_constraint :
|
10
|
-
|
11
|
-
add_unique_constraint :
|
12
|
-
|
13
|
-
add_unique_constraint :
|
14
|
-
|
15
|
-
add_unique_constraint :
|
16
|
-
|
17
|
-
add_unique_constraint :
|
18
|
-
|
19
|
-
add_unique_constraint :
|
20
|
-
|
21
|
-
add_unique_constraint :
|
22
|
-
|
4
|
+
|
5
|
+
add_unique_constraint :bridge_cache_affiliated_sub_accounts, %i[bridge_id domain_id], deferrable: false,
|
6
|
+
name: 'bridge_cache_affiliated_sub_accounts_bridge_uniq'
|
7
|
+
add_unique_constraint :bridge_cache_course_templates, %i[bridge_id sub_account_id], deferrable: false,
|
8
|
+
name: 'bridge_cache_course_templates_bridge_uniq'
|
9
|
+
add_unique_constraint :bridge_cache_custom_fields, %i[bridge_id domain_id], deferrable: false,
|
10
|
+
name: 'bridge_cache_custom_fields_bridge_uniq'
|
11
|
+
add_unique_constraint :bridge_cache_domains, [:bridge_id], deferrable: false,
|
12
|
+
name: 'bridge_cache_domains_bridge_uniq'
|
13
|
+
add_unique_constraint :bridge_cache_enrollment_profiles, %i[bridge_id domain_id], deferrable: false,
|
14
|
+
name: 'bridge_cache_enrollment_profiles_bridge_uniq'
|
15
|
+
add_unique_constraint :bridge_cache_enrollments, [:bridge_id], deferrable: false,
|
16
|
+
name: 'bridge_cache_enrollments_bridge_uniq'
|
17
|
+
add_unique_constraint :bridge_cache_grants, %i[bridge_id domain_id], deferrable: false,
|
18
|
+
name: 'bridge_cache_grants_bridge_uniq'
|
19
|
+
add_unique_constraint :bridge_cache_groups, %i[bridge_id domain_id], deferrable: false,
|
20
|
+
name: 'bridge_cache_groups_bridge_uniq'
|
21
|
+
add_unique_constraint :bridge_cache_group_enrollments, [:bridge_id], deferrable: false,
|
22
|
+
name: 'bridge_cache_group_enrollments_bridge_uniq'
|
23
|
+
add_unique_constraint :bridge_cache_learner_custom_field_values, [:bridge_id], deferrable: false,
|
24
|
+
name: 'bridge_cache_learner_custom_field_values_bridge_uniq'
|
25
|
+
add_unique_constraint :bridge_cache_live_course_enrollments, [:bridge_id], deferrable: false,
|
26
|
+
name: 'bridge_cache_live_course_enrollments_bridge_uniq'
|
27
|
+
add_unique_constraint :bridge_cache_live_course_session_registrations, [:bridge_id], deferrable: false,
|
28
|
+
name: 'bridge_cache_live_course_session_registrations_bridge_uniq'
|
29
|
+
add_unique_constraint :bridge_cache_live_course_sessions, %i[bridge_id domain_id], deferrable: false,
|
30
|
+
name: 'bridge_cache_live_course_sessions_bridge_uniq'
|
31
|
+
add_unique_constraint :bridge_cache_live_courses, %i[bridge_id domain_id], deferrable: false,
|
32
|
+
name: 'bridge_cache_live_courses_bridge_uniq'
|
33
|
+
add_unique_constraint :bridge_cache_memberships, [:bridge_id], deferrable: false,
|
34
|
+
name: 'bridge_cache_memberships_bridge_uniq'
|
35
|
+
add_unique_constraint :bridge_cache_program_enrollments, [:bridge_id], deferrable: false,
|
36
|
+
name: 'bridge_cache_program_enrollments_bridge_uniq'
|
37
|
+
add_unique_constraint :bridge_cache_program_group_enrollments, [:bridge_id], deferrable: false,
|
38
|
+
name: 'bridge_cache_program_group_enrollments_bridge_uniq'
|
39
|
+
add_unique_constraint :bridge_cache_program_items, [:bridge_id], deferrable: false,
|
40
|
+
name: 'bridge_cache_program_items_bridge_uniq'
|
41
|
+
add_unique_constraint :bridge_cache_programs, [:bridge_id], deferrable: false,
|
42
|
+
name: 'bridge_cache_programs_bridge_uniq'
|
23
43
|
add_unique_constraint :bridge_cache_tags, [:bridge_id], deferrable: false, name: 'bridge_cache_tags_bridge_uniq'
|
24
|
-
add_unique_constraint :bridge_cache_taggings, [:bridge_id], deferrable: false,
|
25
|
-
|
44
|
+
add_unique_constraint :bridge_cache_taggings, [:bridge_id], deferrable: false,
|
45
|
+
name: 'bridge_cache_taggings_bridge_uniq'
|
46
|
+
add_unique_constraint :bridge_cache_users, %i[bridge_id sub_account_id], deferrable: false,
|
47
|
+
name: 'bridge_cache_users_bridge_uniq'
|
26
48
|
end
|
27
49
|
end
|