sequent 7.1.1 → 8.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/sequent +6 -107
- data/db/sequent_8_migration.sql +120 -0
- data/db/sequent_pgsql.sql +416 -0
- data/db/sequent_schema.rb +11 -57
- data/db/sequent_schema_indexes.sql +37 -0
- data/db/sequent_schema_partitions.sql +34 -0
- data/db/sequent_schema_tables.sql +74 -0
- data/lib/sequent/cli/app.rb +132 -0
- data/lib/sequent/cli/sequent_8_migration.rb +180 -0
- data/lib/sequent/configuration.rb +11 -8
- data/lib/sequent/core/aggregate_repository.rb +2 -2
- data/lib/sequent/core/aggregate_root.rb +32 -9
- data/lib/sequent/core/aggregate_snapshotter.rb +8 -6
- data/lib/sequent/core/command_record.rb +27 -18
- data/lib/sequent/core/command_service.rb +2 -2
- data/lib/sequent/core/event_publisher.rb +1 -1
- data/lib/sequent/core/event_record.rb +37 -17
- data/lib/sequent/core/event_store.rb +101 -119
- data/lib/sequent/core/helpers/array_with_type.rb +1 -1
- data/lib/sequent/core/helpers/association_validator.rb +2 -2
- data/lib/sequent/core/helpers/attribute_support.rb +8 -8
- data/lib/sequent/core/helpers/equal_support.rb +3 -3
- data/lib/sequent/core/helpers/message_matchers/has_attrs.rb +2 -0
- data/lib/sequent/core/helpers/message_router.rb +2 -2
- data/lib/sequent/core/helpers/param_support.rb +1 -3
- data/lib/sequent/core/helpers/pgsql_helpers.rb +32 -0
- data/lib/sequent/core/helpers/string_support.rb +1 -1
- data/lib/sequent/core/helpers/string_to_value_parsers.rb +1 -1
- data/lib/sequent/core/persistors/active_record_persistor.rb +1 -1
- data/lib/sequent/core/persistors/replay_optimized_postgres_persistor.rb +3 -4
- data/lib/sequent/core/projector.rb +1 -1
- data/lib/sequent/core/snapshot_record.rb +44 -0
- data/lib/sequent/core/snapshot_store.rb +105 -0
- data/lib/sequent/core/stream_record.rb +10 -15
- data/lib/sequent/dry_run/read_only_replay_optimized_postgres_persistor.rb +1 -1
- data/lib/sequent/dry_run/view_schema.rb +2 -3
- data/lib/sequent/generator/project.rb +5 -7
- data/lib/sequent/generator/template_aggregate/template_aggregate/commands.rb +2 -0
- data/lib/sequent/generator/template_aggregate/template_aggregate/events.rb +2 -0
- data/lib/sequent/generator/template_aggregate/template_aggregate/template_aggregate.rb +2 -0
- data/lib/sequent/generator/template_aggregate/template_aggregate/template_aggregate_command_handler.rb +2 -0
- data/lib/sequent/generator/template_aggregate/template_aggregate.rb +2 -0
- data/lib/sequent/generator/template_project/Gemfile +7 -5
- data/lib/sequent/generator/template_project/Rakefile +4 -2
- data/lib/sequent/generator/template_project/app/projectors/post_projector.rb +2 -0
- data/lib/sequent/generator/template_project/app/records/post_record.rb +2 -0
- data/lib/sequent/generator/template_project/config/initializers/sequent.rb +3 -8
- data/lib/sequent/generator/template_project/db/migrations.rb +3 -3
- data/lib/sequent/generator/template_project/lib/post/commands.rb +2 -0
- data/lib/sequent/generator/template_project/lib/post/events.rb +2 -0
- data/lib/sequent/generator/template_project/lib/post/post.rb +2 -0
- data/lib/sequent/generator/template_project/lib/post/post_command_handler.rb +2 -0
- data/lib/sequent/generator/template_project/lib/post.rb +2 -0
- data/lib/sequent/generator/template_project/my_app.rb +2 -1
- data/lib/sequent/generator/template_project/spec/app/projectors/post_projector_spec.rb +2 -0
- data/lib/sequent/generator/template_project/spec/lib/post/post_command_handler_spec.rb +9 -2
- data/lib/sequent/generator/template_project/spec/spec_helper.rb +4 -7
- data/lib/sequent/generator.rb +1 -1
- data/lib/sequent/internal/aggregate_type.rb +12 -0
- data/lib/sequent/internal/command_type.rb +12 -0
- data/lib/sequent/internal/event_type.rb +12 -0
- data/lib/sequent/internal/internal.rb +14 -0
- data/lib/sequent/internal/partitioned_aggregate.rb +26 -0
- data/lib/sequent/internal/partitioned_command.rb +16 -0
- data/lib/sequent/internal/partitioned_event.rb +29 -0
- data/lib/sequent/migrations/grouper.rb +90 -0
- data/lib/sequent/migrations/sequent_schema.rb +2 -1
- data/lib/sequent/migrations/view_schema.rb +76 -77
- data/lib/sequent/rake/migration_tasks.rb +49 -24
- data/lib/sequent/sequent.rb +1 -0
- data/lib/sequent/support/database.rb +20 -16
- data/lib/sequent/test/time_comparison.rb +1 -1
- data/lib/sequent/util/timer.rb +1 -1
- data/lib/version.rb +1 -1
- metadata +102 -21
- data/lib/sequent/generator/template_project/db/sequent_schema.rb +0 -52
- data/lib/sequent/generator/template_project/ruby-version +0 -1
@@ -23,11 +23,7 @@ module Sequent
|
|
23
23
|
|
24
24
|
database_yml = File.join(Sequent.configuration.database_config_directory, 'database.yml')
|
25
25
|
config = YAML.safe_load(ERB.new(File.read(database_yml)).result, aliases: true)[env]
|
26
|
-
|
27
|
-
ActiveRecord::Base.configurations.resolve(config).configuration_hash.with_indifferent_access
|
28
|
-
else
|
29
|
-
ActiveRecord::Base.resolve_config_for_connection(config)
|
30
|
-
end
|
26
|
+
ActiveRecord::Base.configurations.resolve(config).configuration_hash.with_indifferent_access
|
31
27
|
end
|
32
28
|
|
33
29
|
def self.create!(db_config)
|
@@ -102,22 +98,31 @@ module Sequent
|
|
102
98
|
establish_connection(db_config)
|
103
99
|
end
|
104
100
|
|
105
|
-
def self.schema_exists?(schema)
|
106
|
-
ActiveRecord::Base.connection.
|
107
|
-
|
101
|
+
def self.schema_exists?(schema, event_records_table = nil)
|
102
|
+
schema_exists = ActiveRecord::Base.connection.exec_query(
|
103
|
+
'SELECT 1 FROM information_schema.schemata WHERE schema_name LIKE $1',
|
104
|
+
'schema_exists?',
|
105
|
+
[schema],
|
106
|
+
).count == 1
|
107
|
+
|
108
|
+
# The ActiveRecord 7.1 schema_dumper.rb now also adds `create_schema` statements for any schema that
|
109
|
+
# is not named `public`, and in this case the schema may already be created so we check for the
|
110
|
+
# existence of the `event_records` table (or view) as well.
|
111
|
+
return schema_exists unless event_records_table
|
112
|
+
|
113
|
+
ActiveRecord::Base.connection.exec_query(
|
114
|
+
'SELECT 1 FROM information_schema.tables WHERE table_schema LIKE $1 AND table_name LIKE $2',
|
115
|
+
'schema_exists?',
|
116
|
+
[schema, event_records_table],
|
108
117
|
).count == 1
|
109
118
|
end
|
110
119
|
|
111
120
|
def self.configuration_hash
|
112
|
-
|
113
|
-
ActiveRecord::Base.connection_db_config.configuration_hash
|
114
|
-
else
|
115
|
-
ActiveRecord::Base.connection_config
|
116
|
-
end
|
121
|
+
ActiveRecord::Base.connection_db_config.configuration_hash
|
117
122
|
end
|
118
123
|
|
119
|
-
def schema_exists?(schema)
|
120
|
-
self.class.schema_exists?(schema)
|
124
|
+
def schema_exists?(schema, event_records_table = nil)
|
125
|
+
self.class.schema_exists?(schema, event_records_table)
|
121
126
|
end
|
122
127
|
|
123
128
|
def create_schema!(schema)
|
@@ -131,7 +136,6 @@ module Sequent
|
|
131
136
|
def execute_sql(sql)
|
132
137
|
self.class.execute_sql(sql)
|
133
138
|
end
|
134
|
-
|
135
139
|
end
|
136
140
|
end
|
137
141
|
end
|
@@ -16,7 +16,7 @@ module Sequent
|
|
16
16
|
|
17
17
|
# omit nsec in datetime comparisons
|
18
18
|
def <=>(other)
|
19
|
-
if other
|
19
|
+
if other.is_a?(DateTimePatches::Normalize)
|
20
20
|
precision = Sequent.configuration.time_precision
|
21
21
|
return normalize.iso8601(precision) <=> other.normalize.iso8601(precision)
|
22
22
|
end
|
data/lib/sequent/util/timer.rb
CHANGED
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sequent
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 8.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lars Vonk
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2024-
|
15
|
+
date: 2024-12-13 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: activemodel
|
@@ -20,28 +20,28 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version:
|
23
|
+
version: 7.1.3
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
26
|
version_requirements: !ruby/object:Gem::Requirement
|
27
27
|
requirements:
|
28
28
|
- - ">="
|
29
29
|
- !ruby/object:Gem::Version
|
30
|
-
version:
|
30
|
+
version: 7.1.3
|
31
31
|
- !ruby/object:Gem::Dependency
|
32
32
|
name: activerecord
|
33
33
|
requirement: !ruby/object:Gem::Requirement
|
34
34
|
requirements:
|
35
35
|
- - ">="
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version:
|
37
|
+
version: 7.1.3
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
requirements:
|
42
42
|
- - ">="
|
43
43
|
- !ruby/object:Gem::Version
|
44
|
-
version:
|
44
|
+
version: 7.1.3
|
45
45
|
- !ruby/object:Gem::Dependency
|
46
46
|
name: bcrypt
|
47
47
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,6 +56,34 @@ dependencies:
|
|
56
56
|
- - "~>"
|
57
57
|
- !ruby/object:Gem::Version
|
58
58
|
version: '3.1'
|
59
|
+
- !ruby/object:Gem::Dependency
|
60
|
+
name: csv
|
61
|
+
requirement: !ruby/object:Gem::Requirement
|
62
|
+
requirements:
|
63
|
+
- - "~>"
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '3.3'
|
66
|
+
type: :runtime
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: !ruby/object:Gem::Requirement
|
69
|
+
requirements:
|
70
|
+
- - "~>"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '3.3'
|
73
|
+
- !ruby/object:Gem::Dependency
|
74
|
+
name: gli
|
75
|
+
requirement: !ruby/object:Gem::Requirement
|
76
|
+
requirements:
|
77
|
+
- - "~>"
|
78
|
+
- !ruby/object:Gem::Version
|
79
|
+
version: '2.22'
|
80
|
+
type: :runtime
|
81
|
+
prerelease: false
|
82
|
+
version_requirements: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - "~>"
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '2.22'
|
59
87
|
- !ruby/object:Gem::Dependency
|
60
88
|
name: i18n
|
61
89
|
requirement: !ruby/object:Gem::Requirement
|
@@ -70,20 +98,34 @@ dependencies:
|
|
70
98
|
- - ">="
|
71
99
|
- !ruby/object:Gem::Version
|
72
100
|
version: '0'
|
101
|
+
- !ruby/object:Gem::Dependency
|
102
|
+
name: logger
|
103
|
+
requirement: !ruby/object:Gem::Requirement
|
104
|
+
requirements:
|
105
|
+
- - "~>"
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '1.6'
|
108
|
+
type: :runtime
|
109
|
+
prerelease: false
|
110
|
+
version_requirements: !ruby/object:Gem::Requirement
|
111
|
+
requirements:
|
112
|
+
- - "~>"
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: '1.6'
|
73
115
|
- !ruby/object:Gem::Dependency
|
74
116
|
name: oj
|
75
117
|
requirement: !ruby/object:Gem::Requirement
|
76
118
|
requirements:
|
77
119
|
- - "~>"
|
78
120
|
- !ruby/object:Gem::Version
|
79
|
-
version: '3'
|
121
|
+
version: '3.3'
|
80
122
|
type: :runtime
|
81
123
|
prerelease: false
|
82
124
|
version_requirements: !ruby/object:Gem::Requirement
|
83
125
|
requirements:
|
84
126
|
- - "~>"
|
85
127
|
- !ruby/object:Gem::Version
|
86
|
-
version: '3'
|
128
|
+
version: '3.3'
|
87
129
|
- !ruby/object:Gem::Dependency
|
88
130
|
name: parallel
|
89
131
|
requirement: !ruby/object:Gem::Requirement
|
@@ -160,6 +202,20 @@ dependencies:
|
|
160
202
|
- - "~>"
|
161
203
|
- !ruby/object:Gem::Version
|
162
204
|
version: 0.3.6
|
205
|
+
- !ruby/object:Gem::Dependency
|
206
|
+
name: tty-prompt
|
207
|
+
requirement: !ruby/object:Gem::Requirement
|
208
|
+
requirements:
|
209
|
+
- - "~>"
|
210
|
+
- !ruby/object:Gem::Version
|
211
|
+
version: 0.23.1
|
212
|
+
type: :runtime
|
213
|
+
prerelease: false
|
214
|
+
version_requirements: !ruby/object:Gem::Requirement
|
215
|
+
requirements:
|
216
|
+
- - "~>"
|
217
|
+
- !ruby/object:Gem::Version
|
218
|
+
version: 0.23.1
|
163
219
|
- !ruby/object:Gem::Dependency
|
164
220
|
name: tzinfo
|
165
221
|
requirement: !ruby/object:Gem::Requirement
|
@@ -174,6 +230,20 @@ dependencies:
|
|
174
230
|
- - ">="
|
175
231
|
- !ruby/object:Gem::Version
|
176
232
|
version: '1.1'
|
233
|
+
- !ruby/object:Gem::Dependency
|
234
|
+
name: prop_check
|
235
|
+
requirement: !ruby/object:Gem::Requirement
|
236
|
+
requirements:
|
237
|
+
- - "~>"
|
238
|
+
- !ruby/object:Gem::Version
|
239
|
+
version: '1.0'
|
240
|
+
type: :development
|
241
|
+
prerelease: false
|
242
|
+
version_requirements: !ruby/object:Gem::Requirement
|
243
|
+
requirements:
|
244
|
+
- - "~>"
|
245
|
+
- !ruby/object:Gem::Version
|
246
|
+
version: '1.0'
|
177
247
|
- !ruby/object:Gem::Dependency
|
178
248
|
name: pry
|
179
249
|
requirement: !ruby/object:Gem::Requirement
|
@@ -250,20 +320,14 @@ dependencies:
|
|
250
320
|
requirements:
|
251
321
|
- - "~>"
|
252
322
|
- !ruby/object:Gem::Version
|
253
|
-
version:
|
254
|
-
- - ">="
|
255
|
-
- !ruby/object:Gem::Version
|
256
|
-
version: 1.56.3
|
323
|
+
version: 1.68.0
|
257
324
|
type: :development
|
258
325
|
prerelease: false
|
259
326
|
version_requirements: !ruby/object:Gem::Requirement
|
260
327
|
requirements:
|
261
328
|
- - "~>"
|
262
329
|
- !ruby/object:Gem::Version
|
263
|
-
version:
|
264
|
-
- - ">="
|
265
|
-
- !ruby/object:Gem::Version
|
266
|
-
version: 1.56.3
|
330
|
+
version: 1.68.0
|
267
331
|
- !ruby/object:Gem::Dependency
|
268
332
|
name: simplecov
|
269
333
|
requirement: !ruby/object:Gem::Requirement
|
@@ -305,10 +369,17 @@ extensions: []
|
|
305
369
|
extra_rdoc_files: []
|
306
370
|
files:
|
307
371
|
- bin/sequent
|
372
|
+
- db/sequent_8_migration.sql
|
373
|
+
- db/sequent_pgsql.sql
|
308
374
|
- db/sequent_schema.rb
|
375
|
+
- db/sequent_schema_indexes.sql
|
376
|
+
- db/sequent_schema_partitions.sql
|
377
|
+
- db/sequent_schema_tables.sql
|
309
378
|
- lib/notices.rb
|
310
379
|
- lib/sequent.rb
|
311
380
|
- lib/sequent/application_record.rb
|
381
|
+
- lib/sequent/cli/app.rb
|
382
|
+
- lib/sequent/cli/sequent_8_migration.rb
|
312
383
|
- lib/sequent/configuration.rb
|
313
384
|
- lib/sequent/core/aggregate_repository.rb
|
314
385
|
- lib/sequent/core/aggregate_root.rb
|
@@ -359,6 +430,7 @@ files:
|
|
359
430
|
- lib/sequent/core/helpers/message_matchers/message_matchers.rb
|
360
431
|
- lib/sequent/core/helpers/message_router.rb
|
361
432
|
- lib/sequent/core/helpers/param_support.rb
|
433
|
+
- lib/sequent/core/helpers/pgsql_helpers.rb
|
362
434
|
- lib/sequent/core/helpers/secret.rb
|
363
435
|
- lib/sequent/core/helpers/string_support.rb
|
364
436
|
- lib/sequent/core/helpers/string_to_value_parsers.rb
|
@@ -376,6 +448,8 @@ files:
|
|
376
448
|
- lib/sequent/core/projector.rb
|
377
449
|
- lib/sequent/core/random_uuid_generator.rb
|
378
450
|
- lib/sequent/core/sequent_oj.rb
|
451
|
+
- lib/sequent/core/snapshot_record.rb
|
452
|
+
- lib/sequent/core/snapshot_store.rb
|
379
453
|
- lib/sequent/core/stream_record.rb
|
380
454
|
- lib/sequent/core/transactions/active_record_transaction_provider.rb
|
381
455
|
- lib/sequent/core/transactions/no_transactions.rb
|
@@ -406,7 +480,6 @@ files:
|
|
406
480
|
- lib/sequent/generator/template_project/config/initializers/sequent.rb
|
407
481
|
- lib/sequent/generator/template_project/db/database.yml
|
408
482
|
- lib/sequent/generator/template_project/db/migrations.rb
|
409
|
-
- lib/sequent/generator/template_project/db/sequent_schema.rb
|
410
483
|
- lib/sequent/generator/template_project/db/tables/post_records.sql
|
411
484
|
- lib/sequent/generator/template_project/lib/post.rb
|
412
485
|
- lib/sequent/generator/template_project/lib/post/commands.rb
|
@@ -414,13 +487,20 @@ files:
|
|
414
487
|
- lib/sequent/generator/template_project/lib/post/post.rb
|
415
488
|
- lib/sequent/generator/template_project/lib/post/post_command_handler.rb
|
416
489
|
- lib/sequent/generator/template_project/my_app.rb
|
417
|
-
- lib/sequent/generator/template_project/ruby-version
|
418
490
|
- lib/sequent/generator/template_project/spec/app/projectors/post_projector_spec.rb
|
419
491
|
- lib/sequent/generator/template_project/spec/lib/post/post_command_handler_spec.rb
|
420
492
|
- lib/sequent/generator/template_project/spec/spec_helper.rb
|
493
|
+
- lib/sequent/internal/aggregate_type.rb
|
494
|
+
- lib/sequent/internal/command_type.rb
|
495
|
+
- lib/sequent/internal/event_type.rb
|
496
|
+
- lib/sequent/internal/internal.rb
|
497
|
+
- lib/sequent/internal/partitioned_aggregate.rb
|
498
|
+
- lib/sequent/internal/partitioned_command.rb
|
499
|
+
- lib/sequent/internal/partitioned_event.rb
|
421
500
|
- lib/sequent/migrations/errors.rb
|
422
501
|
- lib/sequent/migrations/executor.rb
|
423
502
|
- lib/sequent/migrations/functions.rb
|
503
|
+
- lib/sequent/migrations/grouper.rb
|
424
504
|
- lib/sequent/migrations/migrations.rb
|
425
505
|
- lib/sequent/migrations/planner.rb
|
426
506
|
- lib/sequent/migrations/projectors.rb
|
@@ -448,7 +528,8 @@ files:
|
|
448
528
|
homepage: https://github.com/zilverline/sequent
|
449
529
|
licenses:
|
450
530
|
- MIT
|
451
|
-
metadata:
|
531
|
+
metadata:
|
532
|
+
rubygems_mfa_required: 'true'
|
452
533
|
post_install_message:
|
453
534
|
rdoc_options: []
|
454
535
|
require_paths:
|
@@ -457,14 +538,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
457
538
|
requirements:
|
458
539
|
- - ">="
|
459
540
|
- !ruby/object:Gem::Version
|
460
|
-
version: '3.
|
541
|
+
version: '3.2'
|
461
542
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
462
543
|
requirements:
|
463
544
|
- - ">="
|
464
545
|
- !ruby/object:Gem::Version
|
465
546
|
version: '0'
|
466
547
|
requirements: []
|
467
|
-
rubygems_version: 3.
|
548
|
+
rubygems_version: 3.4.10
|
468
549
|
signing_key:
|
469
550
|
specification_version: 4
|
470
551
|
summary: Event sourcing framework for Ruby
|
@@ -1,52 +0,0 @@
|
|
1
|
-
ActiveRecord::Schema.define do
|
2
|
-
|
3
|
-
create_table "event_records", :force => true do |t|
|
4
|
-
t.uuid "aggregate_id", :null => false
|
5
|
-
t.integer "sequence_number", :null => false
|
6
|
-
t.datetime "created_at", :null => false
|
7
|
-
t.string "event_type", :null => false
|
8
|
-
t.text "event_json", :null => false
|
9
|
-
t.integer "command_record_id", :null => false
|
10
|
-
t.integer "stream_record_id", :null => false
|
11
|
-
t.bigint "xact_id"
|
12
|
-
end
|
13
|
-
|
14
|
-
execute %Q{
|
15
|
-
CREATE UNIQUE INDEX unique_event_per_aggregate ON event_records (
|
16
|
-
aggregate_id,
|
17
|
-
sequence_number,
|
18
|
-
(CASE event_type WHEN 'Sequent::Core::SnapshotEvent' THEN 0 ELSE 1 END)
|
19
|
-
)
|
20
|
-
}
|
21
|
-
execute %Q{
|
22
|
-
CREATE INDEX snapshot_events ON event_records (aggregate_id, sequence_number DESC) WHERE event_type = 'Sequent::Core::SnapshotEvent'
|
23
|
-
}
|
24
|
-
|
25
|
-
add_index "event_records", ["command_record_id"], :name => "index_event_records_on_command_record_id"
|
26
|
-
add_index "event_records", ["event_type"], :name => "index_event_records_on_event_type"
|
27
|
-
add_index "event_records", ["created_at"], :name => "index_event_records_on_created_at"
|
28
|
-
|
29
|
-
create_table "command_records", :force => true do |t|
|
30
|
-
t.string "user_id"
|
31
|
-
t.uuid "aggregate_id"
|
32
|
-
t.string "command_type", :null => false
|
33
|
-
t.text "command_json", :null => false
|
34
|
-
t.datetime "created_at", :null => false
|
35
|
-
end
|
36
|
-
|
37
|
-
create_table "stream_records", :force => true do |t|
|
38
|
-
t.datetime "created_at", :null => false
|
39
|
-
t.string "aggregate_type", :null => false
|
40
|
-
t.uuid "aggregate_id", :null => false
|
41
|
-
t.integer "snapshot_threshold"
|
42
|
-
end
|
43
|
-
|
44
|
-
add_index "stream_records", ["aggregate_id"], :name => "index_stream_records_on_aggregate_id", :unique => true
|
45
|
-
execute %q{
|
46
|
-
ALTER TABLE event_records ADD CONSTRAINT command_fkey FOREIGN KEY (command_record_id) REFERENCES command_records (id)
|
47
|
-
}
|
48
|
-
execute %q{
|
49
|
-
ALTER TABLE event_records ADD CONSTRAINT stream_fkey FOREIGN KEY (stream_record_id) REFERENCES stream_records (id)
|
50
|
-
}
|
51
|
-
|
52
|
-
end
|
@@ -1 +0,0 @@
|
|
1
|
-
3.0.0
|