rails_event_store_active_record 0.40.1 → 0.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +7 -2
- data/lib/rails_event_store_active_record.rb +2 -1
- data/lib/rails_event_store_active_record/event.rb +2 -0
- data/lib/rails_event_store_active_record/event_repository.rb +2 -5
- data/lib/rails_event_store_active_record/event_repository_reader.rb +2 -0
- data/lib/rails_event_store_active_record/generators/binary_data_and_metadata_generator.rb +2 -0
- data/lib/rails_event_store_active_record/generators/index_by_event_type_generator.rb +2 -0
- data/lib/rails_event_store_active_record/generators/limit_for_event_id_generator.rb +2 -0
- data/lib/rails_event_store_active_record/generators/migration_generator.rb +2 -0
- data/lib/rails_event_store_active_record/generators/templates/binary_data_and_metadata_template.rb +2 -0
- data/lib/rails_event_store_active_record/generators/templates/create_event_store_events_template.rb +2 -0
- data/lib/rails_event_store_active_record/generators/templates/index_by_event_type_template.rb +2 -0
- data/lib/rails_event_store_active_record/generators/templates/limit_for_event_id_template.rb +2 -0
- data/lib/rails_event_store_active_record/index_violation_detector.rb +2 -0
- data/lib/rails_event_store_active_record/pg_linearized_event_repository.rb +6 -4
- data/lib/rails_event_store_active_record/version.rb +3 -1
- data/rails_event_store_active_record.gemspec +2 -2
- metadata +10 -10
- data/lib/rails_event_store_active_record/correct_schema_verifier.rb +0 -78
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '03784db0e91a086929498ea7b87d84e6c7ffd6dc2f27e645fbc325fdb131e319'
|
4
|
+
data.tar.gz: 07c85cd688ad7fc39d96c8044e5742cfec5b489f10ec96ce817c069dd7e85dd3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6fff7153e17fff577041c739e5eecaf2beb2650ff16afbfab762ffecf1618392fb8981c69b619917466995b9b3c743647afbc14d5d8d888da1fcda2a723f759a
|
7
|
+
data.tar.gz: 30c5ae620744bc878bd87c2621a20a49826894a40d2652da610fa32bfe5424b67214f691fdbfdb0aa0e11897427c5a988bd67a4301dfd795bb2a3f9e1eef4851
|
data/Gemfile
CHANGED
@@ -5,9 +5,14 @@ gemspec
|
|
5
5
|
eval_gemfile File.expand_path('../support/bundler/Gemfile.shared', __dir__)
|
6
6
|
|
7
7
|
gem 'ruby_event_store', path: '../ruby_event_store'
|
8
|
-
gem 'sqlite3', '1.3.13'
|
9
8
|
gem 'pg', '0.21'
|
10
9
|
gem 'mysql2', '0.4.10'
|
11
10
|
gem 'fakefs', '~> 0.11.2'
|
12
11
|
gem 'childprocess'
|
13
|
-
gem 'rails', ENV['RAILS_VERSION']
|
12
|
+
gem 'rails', ENV['RAILS_VERSION']
|
13
|
+
|
14
|
+
if Gem::Version.new(ENV['RAILS_VERSION']) >= Gem::Version.new('6.0.0.rc1')
|
15
|
+
gem 'sqlite3', '1.4.1'
|
16
|
+
else
|
17
|
+
gem 'sqlite3', '1.3.13'
|
18
|
+
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'rails_event_store_active_record/generators/migration_generator'
|
2
4
|
require 'rails_event_store_active_record/generators/index_by_event_type_generator'
|
3
5
|
require 'rails_event_store_active_record/generators/limit_for_event_id_generator'
|
@@ -5,7 +7,6 @@ require 'rails_event_store_active_record/generators/binary_data_and_metadata_gen
|
|
5
7
|
require 'rails_event_store_active_record/event'
|
6
8
|
require 'rails_event_store_active_record/event_repository'
|
7
9
|
require 'rails_event_store_active_record/event_repository_reader'
|
8
|
-
require 'rails_event_store_active_record/correct_schema_verifier'
|
9
10
|
require 'rails_event_store_active_record/index_violation_detector'
|
10
11
|
require 'rails_event_store_active_record/pg_linearized_event_repository'
|
11
12
|
require 'rails_event_store_active_record/version'
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'activerecord-import'
|
2
4
|
|
3
5
|
module RailsEventStoreActiveRecord
|
@@ -6,7 +8,6 @@ module RailsEventStoreActiveRecord
|
|
6
8
|
SERIALIZED_GLOBAL_STREAM_NAME = "all".freeze
|
7
9
|
|
8
10
|
def initialize
|
9
|
-
verify_correct_schema_present
|
10
11
|
@repo_reader = EventRepositoryReader.new
|
11
12
|
end
|
12
13
|
|
@@ -122,10 +123,6 @@ module RailsEventStoreActiveRecord
|
|
122
123
|
)
|
123
124
|
end
|
124
125
|
|
125
|
-
def verify_correct_schema_present
|
126
|
-
CorrectSchemaVerifier.new.verify
|
127
|
-
end
|
128
|
-
|
129
126
|
# Overwritten in a sub-class
|
130
127
|
def fill_ids(_in_stream)
|
131
128
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'activerecord-import'
|
2
4
|
|
3
5
|
module RailsEventStoreActiveRecord
|
@@ -5,10 +7,10 @@ module RailsEventStoreActiveRecord
|
|
5
7
|
|
6
8
|
def start_transaction(&proc)
|
7
9
|
ActiveRecord::Base.transaction(requires_new: true) do
|
8
|
-
ActiveRecord::Base
|
9
|
-
connection
|
10
|
-
execute("SELECT pg_advisory_xact_lock(1845240511599988039) as l")
|
11
|
-
each{}
|
10
|
+
ActiveRecord::Base
|
11
|
+
.connection
|
12
|
+
.execute("SELECT pg_advisory_xact_lock(1845240511599988039) as l")
|
13
|
+
.each{}
|
12
14
|
|
13
15
|
proc.call
|
14
16
|
end
|
@@ -25,8 +25,8 @@ Gem::Specification.new do |spec|
|
|
25
25
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
26
26
|
spec.require_paths = ['lib']
|
27
27
|
|
28
|
-
spec.add_dependency 'ruby_event_store', '= 0.
|
28
|
+
spec.add_dependency 'ruby_event_store', '= 0.41.0'
|
29
29
|
spec.add_dependency 'activesupport', '>= 3.0'
|
30
30
|
spec.add_dependency 'activemodel', '>= 3.0'
|
31
|
-
spec.add_dependency 'activerecord-import', '
|
31
|
+
spec.add_dependency 'activerecord-import', '>= 1.0.2'
|
32
32
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_event_store_active_record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.41.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arkency
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby_event_store
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.41.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.41.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,16 +56,16 @@ dependencies:
|
|
56
56
|
name: activerecord-import
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 1.0.2
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 1.0.2
|
69
69
|
description: Implementation of events repository based on Rails Active Record for
|
70
70
|
Rails Event Store
|
71
71
|
email:
|
@@ -81,7 +81,6 @@ files:
|
|
81
81
|
- bin/console
|
82
82
|
- bin/setup
|
83
83
|
- lib/rails_event_store_active_record.rb
|
84
|
-
- lib/rails_event_store_active_record/correct_schema_verifier.rb
|
85
84
|
- lib/rails_event_store_active_record/event.rb
|
86
85
|
- lib/rails_event_store_active_record/event_repository.rb
|
87
86
|
- lib/rails_event_store_active_record/event_repository_reader.rb
|
@@ -120,7 +119,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
119
|
- !ruby/object:Gem::Version
|
121
120
|
version: '0'
|
122
121
|
requirements: []
|
123
|
-
|
122
|
+
rubyforge_project:
|
123
|
+
rubygems_version: 2.7.6.2
|
124
124
|
signing_key:
|
125
125
|
specification_version: 4
|
126
126
|
summary: Active Record events repository for Rails Event Store
|
@@ -1,78 +0,0 @@
|
|
1
|
-
module RailsEventStoreActiveRecord
|
2
|
-
|
3
|
-
class EventRepository
|
4
|
-
InvalidDatabaseSchema = Class.new(StandardError)
|
5
|
-
end
|
6
|
-
|
7
|
-
class CorrectSchemaVerifier
|
8
|
-
def verify
|
9
|
-
with_connection do
|
10
|
-
return if no_tables_yet? || correct_schema?
|
11
|
-
raise_invalid_db_schema
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
private
|
16
|
-
|
17
|
-
def with_connection(&block)
|
18
|
-
return unless connected?
|
19
|
-
block.call
|
20
|
-
end
|
21
|
-
|
22
|
-
def connected?
|
23
|
-
ActiveRecord::Base.connected?
|
24
|
-
end
|
25
|
-
|
26
|
-
def correct_schema?
|
27
|
-
correct_events_schema? && correct_streams_schema?
|
28
|
-
end
|
29
|
-
|
30
|
-
def correct_events_schema?
|
31
|
-
table_exists?(:event_store_events) &&
|
32
|
-
event_store_events_columns.eql?(current_columns(:event_store_events))
|
33
|
-
end
|
34
|
-
|
35
|
-
def correct_streams_schema?
|
36
|
-
table_exists?(:event_store_events_in_streams) &&
|
37
|
-
event_store_events_in_streams_columns.eql?(current_columns(:event_store_events_in_streams))
|
38
|
-
end
|
39
|
-
|
40
|
-
def table_exists?(table_name)
|
41
|
-
ActiveRecord::Base.connection.table_exists?(table_name)
|
42
|
-
end
|
43
|
-
|
44
|
-
def raise_invalid_db_schema
|
45
|
-
raise EventRepository::InvalidDatabaseSchema.new(incorrect_schema_message)
|
46
|
-
end
|
47
|
-
|
48
|
-
def no_tables_yet?
|
49
|
-
!table_exists?('event_store_events') &&
|
50
|
-
!table_exists?('event_store_events_in_streams')
|
51
|
-
end
|
52
|
-
|
53
|
-
def event_store_events_columns
|
54
|
-
%w(id event_type metadata data created_at)
|
55
|
-
end
|
56
|
-
|
57
|
-
def event_store_events_in_streams_columns
|
58
|
-
%w(id stream position event_id created_at)
|
59
|
-
end
|
60
|
-
|
61
|
-
def current_columns(table_name)
|
62
|
-
ActiveRecord::Base.connection.columns(table_name).map(&:name)
|
63
|
-
end
|
64
|
-
|
65
|
-
def incorrect_schema_message
|
66
|
-
<<-MESSAGE
|
67
|
-
Oh no!
|
68
|
-
|
69
|
-
It seems you're using RailsEventStoreActiveRecord::EventRepository
|
70
|
-
with incompatible database schema.
|
71
|
-
|
72
|
-
See release notes how to migrate to current database schema.
|
73
|
-
MESSAGE
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
private_constant(:CorrectSchemaVerifier)
|
78
|
-
end
|