evt-event_source-postgres 0.16.0.0 → 0.16.1.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.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/database/clear-events-table.sh +42 -0
  3. data/database/extensions.sql +1 -0
  4. data/database/functions/category.sql +10 -0
  5. data/database/functions/stream-version.sql +13 -0
  6. data/database/functions/write-event.sql +55 -0
  7. data/database/indexes/events-category-global-position.sql +1 -0
  8. data/database/indexes/events-category.sql +1 -0
  9. data/database/indexes/events-id.sql +1 -0
  10. data/database/indexes/events-stream-name-position-uniq.sql +1 -0
  11. data/database/indexes/events-stream-name.sql +1 -0
  12. data/database/install.sh +89 -0
  13. data/database/list-events.sh +42 -0
  14. data/database/table/events-table.sql +20 -0
  15. data/database/test/write-event-expected-version.sql +1 -0
  16. data/database/test/write-event.sql +1 -0
  17. data/database/uninstall.sh +62 -0
  18. data/lib/event_source/loader.rb +1 -0
  19. data/lib/event_source/postgres/database/create.rb +22 -0
  20. data/lib/event_source/postgres/database/database.rb +26 -0
  21. data/lib/event_source/postgres/database/delete.rb +18 -0
  22. data/lib/event_source/postgres/database/extensions.rb +19 -0
  23. data/lib/event_source/postgres/database/functions.rb +57 -0
  24. data/lib/event_source/postgres/database/indexes.rb +87 -0
  25. data/lib/event_source/postgres/database/recreate.rb +12 -0
  26. data/lib/event_source/postgres/database/session.rb +14 -0
  27. data/lib/event_source/postgres/database/settings.rb +19 -0
  28. data/lib/event_source/postgres/database/sql_code.rb +17 -0
  29. data/lib/event_source/postgres/database/table.rb +19 -0
  30. data/lib/event_source/postgres/database/user.rb +30 -0
  31. data/lib/event_source/postgres/database.rb +12 -0
  32. data/scripts/evt-pg-create +5 -0
  33. data/scripts/evt-pg-delete +5 -0
  34. data/scripts/evt-pg-recreate +5 -0
  35. data/scripts/scripts_init.rb +12 -0
  36. metadata +42 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fdde5b460ccf63ebbb229bd0ddda5d65d4995a9c
4
- data.tar.gz: 8edfa63de22e167447a6d3bde932d82b5fd240da
3
+ metadata.gz: ea157c9663d13cb265743abe28c95e77b108ba43
4
+ data.tar.gz: c8f1355b895578f3d498be0a7351374ed54ca7ae
5
5
  SHA512:
6
- metadata.gz: e5e23256132e2340cf30082de49ab97c4af5904f2014d364755ae2c217f6ae4d71b3683d4bf248ed8851bde4db91ffaf0ce3876cb0ee1ce9f8e0cd6fb1e8e37d
7
- data.tar.gz: f7be71af3182fb67ad718c4d893cae015bebb280b6a8db0cdd2dd83892e4f083f456589641b825370b06c79f4823dc914d16feaeadf6564c301fd580ecb40358
6
+ metadata.gz: 737ac3b19da5ad8821b4b9d6c67681e7c214780aeafea78734bea85aed7891e67266131b8c086dffe2103f7366c53f1f28c0ae2e5e484d605e9be2f96a184940
7
+ data.tar.gz: 64e9ca7ab470cd2e1d829d17ab5fcd275e52126a53f6328ba9e87eaab620069063187bacfbef4fbd77e73fb0a7ee8c6fce6f8afee90d612e2a2fa92a9ac16f5b
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -e
4
+
5
+ clear
6
+
7
+ echo
8
+ echo "Clearing Events Table"
9
+ echo "= = ="
10
+ echo
11
+
12
+ default_name=event_source
13
+
14
+ if [ -z ${DATABASE_USER+x} ]; then
15
+ echo "(DATABASE_USER is not set)"
16
+ user=$default_name
17
+ else
18
+ user=$DATABASE_USER
19
+ fi
20
+ echo "Database user is: $user"
21
+
22
+ if [ -z ${DATABASE_NAME+x} ]; then
23
+ echo "(DATABASE_NAME is not set)"
24
+ database=$default_name
25
+ else
26
+ database=$DATABASE_NAME
27
+ fi
28
+ echo "Database name is: $database"
29
+
30
+ default_table_name=events
31
+
32
+ if [ -z ${TABLE_NAME+x} ]; then
33
+ echo "(TABLE_NAME is not set)"
34
+ table=$default_table_name
35
+ else
36
+ table=$TABLE_NAME
37
+ fi
38
+ echo "Table name is: $table"
39
+
40
+ echo
41
+
42
+ psql $database -c "TRUNCATE $table RESTART IDENTITY;"
@@ -0,0 +1 @@
1
+ CREATE EXTENSION IF NOT EXISTS "pgcrypto";
@@ -0,0 +1,10 @@
1
+ CREATE OR REPLACE FUNCTION category(
2
+ _stream_name varchar
3
+ )
4
+ RETURNS varchar
5
+ AS $$
6
+ BEGIN
7
+ return split_part(_stream_name, '-', 1);
8
+ END;
9
+ $$ LANGUAGE plpgsql
10
+ IMMUTABLE;
@@ -0,0 +1,13 @@
1
+ CREATE OR REPLACE FUNCTION stream_version(
2
+ _stream_name varchar
3
+ )
4
+ RETURNS int
5
+ AS $$
6
+ DECLARE
7
+ stream_version int;
8
+ BEGIN
9
+ select max(position) into stream_version from events where stream_name = _stream_name;
10
+
11
+ return stream_version;
12
+ END;
13
+ $$ LANGUAGE plpgsql;
@@ -0,0 +1,55 @@
1
+ CREATE OR REPLACE FUNCTION write_event(
2
+ _id varchar,
3
+ _stream_name varchar,
4
+ _type varchar,
5
+ _data jsonb,
6
+ _metadata jsonb DEFAULT NULL,
7
+ _expected_version int DEFAULT NULL
8
+ )
9
+ RETURNS int
10
+ AS $$
11
+ DECLARE
12
+ event_id uuid;
13
+ stream_version int;
14
+ position int;
15
+ category varchar;
16
+ BEGIN
17
+ event_id = uuid(_id);
18
+
19
+ stream_version := stream_version(_stream_name);
20
+
21
+ if stream_version is null then
22
+ stream_version := -1;
23
+ end if;
24
+
25
+ if _expected_version is not null then
26
+ if _expected_version != stream_version then
27
+ raise exception 'Wrong expected version: % (Stream: %, Stream Version: %)', _expected_version, _stream_name, stream_version;
28
+ end if;
29
+ end if;
30
+
31
+ position := stream_version + 1;
32
+
33
+ insert into "events"
34
+ (
35
+ "id",
36
+ "stream_name",
37
+ "position",
38
+ "type",
39
+ "data",
40
+ "metadata"
41
+ )
42
+ values
43
+ (
44
+ event_id,
45
+ _stream_name,
46
+ position,
47
+ _type,
48
+ _data,
49
+ _metadata
50
+ )
51
+ ;
52
+
53
+ return position;
54
+ END;
55
+ $$ LANGUAGE plpgsql;
@@ -0,0 +1 @@
1
+ CREATE INDEX CONCURRENTLY "events_category_global_position_idx" ON "public"."events" USING btree(category(stream_name) COLLATE "default" "pg_catalog"."text_ops" ASC NULLS LAST, "global_position" "pg_catalog"."int8_ops" ASC NULLS LAST);
@@ -0,0 +1 @@
1
+ CREATE INDEX CONCURRENTLY "events_category_idx" ON "public"."events" USING btree(category(stream_name) COLLATE "default" "pg_catalog"."text_ops" ASC NULLS LAST);
@@ -0,0 +1 @@
1
+ CREATE INDEX CONCURRENTLY "events_id_idx" ON "public"."events" USING btree(id ASC NULLS LAST);
@@ -0,0 +1 @@
1
+ CREATE UNIQUE INDEX CONCURRENTLY "events_stream_name_position_uniq_idx" ON "public"."events" USING btree(stream_name COLLATE "default" "pg_catalog"."text_ops" ASC NULLS LAST, "position" "pg_catalog"."int4_ops" ASC NULLS LAST);
@@ -0,0 +1 @@
1
+ CREATE INDEX CONCURRENTLY "events_stream_name_idx" ON "public"."events" USING btree(stream_name COLLATE "default" "pg_catalog"."text_ops" ASC NULLS LAST);
@@ -0,0 +1,89 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -e
4
+
5
+ clear
6
+
7
+ echo
8
+ echo "Installing Database"
9
+ echo "= = ="
10
+ echo
11
+
12
+ default_name=event_source
13
+
14
+ if [ -z ${DATABASE_USER+x} ]; then
15
+ echo "(DATABASE_USER is not set)"
16
+ user=$default_name
17
+ else
18
+ user=$DATABASE_USER
19
+ fi
20
+
21
+ if [ -z ${DATABASE_NAME+x} ]; then
22
+ echo "(DATABASE_NAME is not set)"
23
+ database=$default_name
24
+ else
25
+ database=$DATABASE_NAME
26
+ fi
27
+
28
+ echo
29
+
30
+ function create-user {
31
+ echo "Database user is: $user"
32
+
33
+ user_exists=`psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='$user'"`
34
+
35
+ if [ "$user_exists" = "1" ]; then
36
+ echo "Database user \"$user\" was previously created. Not creating again."
37
+ else
38
+ echo "Database user \"$user\" has not yet been created"
39
+ echo "Creating database user \"$user\""
40
+ createuser -s $user
41
+ fi
42
+
43
+ echo
44
+ }
45
+
46
+ function create-database {
47
+ echo "Database name is: $database"
48
+
49
+ database_exists=`psql postgres -tAc "SELECT 1 FROM pg_database WHERE datname='$database'"`
50
+
51
+ if [ "$database_exists" = "1" ]; then
52
+ echo "Database \"$database\" was previously created. Not creating again."
53
+ else
54
+ echo "Database \"$database\" has not yet been created"
55
+ echo "Creating database \"$database\""
56
+ createdb $database || true
57
+ fi
58
+
59
+ echo
60
+ }
61
+
62
+ function create-extensions {
63
+ psql $database -f database/extensions.sql
64
+ }
65
+
66
+ function create-table {
67
+ psql $database -f database/table/events-table.sql
68
+ }
69
+
70
+ function create-functions {
71
+ psql $database -f database/functions/category.sql
72
+ psql $database -f database/functions/stream-version.sql
73
+ psql $database -f database/functions/write-event.sql
74
+ }
75
+
76
+ function create-indexes {
77
+ psql $database -f database/indexes/events-id.sql
78
+ psql $database -f database/indexes/events-category-global-position.sql
79
+ psql $database -f database/indexes/events-category.sql
80
+ psql $database -f database/indexes/events-stream-name.sql
81
+ psql $database -f database/indexes/events-stream-name-position-uniq.sql
82
+ }
83
+
84
+ create-user
85
+ create-database
86
+ create-extensions
87
+ create-table
88
+ create-functions
89
+ create-indexes
@@ -0,0 +1,42 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -e
4
+
5
+ clear
6
+
7
+ echo
8
+ echo "Listing Events"
9
+ echo "= = ="
10
+ echo
11
+
12
+ default_name=event_source
13
+
14
+ if [ -z ${DATABASE_USER+x} ]; then
15
+ echo "(DATABASE_USER is not set)"
16
+ user=$default_name
17
+ else
18
+ user=$DATABASE_USER
19
+ fi
20
+ echo "Database user is: $user"
21
+
22
+ if [ -z ${DATABASE_NAME+x} ]; then
23
+ echo "(DATABASE_NAME is not set)"
24
+ database=$default_name
25
+ else
26
+ database=$DATABASE_NAME
27
+ fi
28
+ echo "Database name is: $database"
29
+
30
+ default_table_name=events
31
+
32
+ if [ -z ${TABLE_NAME+x} ]; then
33
+ echo "(TABLE_NAME is not set)"
34
+ table=$default_table_name
35
+ else
36
+ table=$TABLE_NAME
37
+ fi
38
+ echo "Table name is: $table"
39
+
40
+ echo
41
+
42
+ psql $database -c "SELECT * FROM $table"
@@ -0,0 +1,20 @@
1
+ -- ----------------------------
2
+ -- Table structure for events
3
+ -- ----------------------------
4
+ DROP TABLE IF EXISTS "public"."events";
5
+ CREATE TABLE "public"."events" (
6
+ "id" UUID NOT NULL DEFAULT gen_random_uuid(),
7
+ "stream_name" varchar(255) NOT NULL COLLATE "default",
8
+ "position" int4 NOT NULL,
9
+ "type" varchar(255) NOT NULL COLLATE "default",
10
+ "global_position" bigserial NOT NULL ,
11
+ "data" jsonb,
12
+ "metadata" jsonb,
13
+ "time" TIMESTAMP WITHOUT TIME ZONE DEFAULT (now() AT TIME ZONE 'utc') NOT NULL
14
+ )
15
+ WITH (OIDS=FALSE);
16
+
17
+ -- ----------------------------
18
+ -- Primary key structure for table events
19
+ -- ----------------------------
20
+ ALTER TABLE "public"."events" ADD PRIMARY KEY ("global_position") NOT DEFERRABLE INITIALLY IMMEDIATE;
@@ -0,0 +1 @@
1
+ SELECT write_event('someStream-123', 'SomeType', '{"someField":"some value"}', '{"someMetadataField":"some metadata value"}', 1);
@@ -0,0 +1 @@
1
+ SELECT write_event('someStream-123', 'SomeType', '{"someField":"some value"}', '{"someMetadataField":"some metadata value"}');
@@ -0,0 +1,62 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -e
4
+
5
+ clear
6
+
7
+ echo
8
+ echo "Uninstalling Database"
9
+ echo "= = ="
10
+ echo
11
+
12
+ default_name=event_source
13
+
14
+ if [ -z ${DATABASE_USER+x} ]; then
15
+ echo "(DATABASE_USER is not set)"
16
+ user=$default_name
17
+ else
18
+ user=$DATABASE_USER
19
+ fi
20
+
21
+ if [ -z ${DATABASE_NAME+x} ]; then
22
+ echo "(DATABASE_NAME is not set)"
23
+ database=$default_name
24
+ else
25
+ database=$DATABASE_NAME
26
+ fi
27
+
28
+ echo
29
+
30
+ function delete-user {
31
+ echo "Database user is: $user"
32
+
33
+ user_exists=`psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='$user'"`
34
+
35
+ if [ "$user_exists" = "1" ]; then
36
+ echo "Deleting database user \"$user\""
37
+ dropuser $user
38
+ else
39
+ echo "Database user \"$user\" does not exist. Not deleting."
40
+ fi
41
+
42
+ echo
43
+ }
44
+
45
+ function delete-database {
46
+ echo "Database name is: $database"
47
+
48
+ database_exists=`psql -tAc "SELECT 1 FROM pg_database WHERE datname='$database'"`
49
+
50
+ if [ "$database_exists" = "1" ]; then
51
+ echo "Deleting database \"$database\""
52
+ dropdb $database
53
+ else
54
+ echo "Database \"$database\" does not exist. Not deleting."
55
+ fi
56
+
57
+ echo
58
+ }
59
+
60
+
61
+ delete-database
62
+ delete-user
@@ -0,0 +1 @@
1
+ lib/event_source/postgres.rb
@@ -0,0 +1,22 @@
1
+ module EventSource
2
+ module Postgres
3
+ module Database
4
+ module Create
5
+ def self.call
6
+ warn "Creating database"
7
+
8
+ session = Session.build
9
+
10
+ User::Create.(session)
11
+ Database::Create.(session)
12
+ Extensions::Create.(session)
13
+ Table::Create.(session)
14
+ Functions::Create.(session)
15
+ Indexes::Create.(session)
16
+
17
+ warn "Done creating database"
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,26 @@
1
+ module EventSource
2
+ module Postgres
3
+ module Database
4
+ module Database
5
+ module Create
6
+ def self.call(session)
7
+ database = Settings.database
8
+
9
+ begin
10
+ session.execute("CREATE DATABASE #{database}")
11
+ rescue PG::DuplicateDatabase
12
+ warn "NOTICE: database \"#{database}\" already exists, skipping"
13
+ end
14
+ end
15
+ end
16
+
17
+ module Delete
18
+ def self.call(session)
19
+ database = Settings.database
20
+ session.execute("DROP DATABASE IF EXISTS #{database}")
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,18 @@
1
+ module EventSource
2
+ module Postgres
3
+ module Database
4
+ module Delete
5
+ def self.call
6
+ warn "Deleting database"
7
+
8
+ session = Session.build
9
+
10
+ User::Delete.(session)
11
+ Database::Delete.(session)
12
+
13
+ warn "Done deleting database"
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,19 @@
1
+ module EventSource
2
+ module Postgres
3
+ module Database
4
+ module Extensions
5
+ module Create
6
+ def self.sql_filename
7
+ 'extensions.sql'
8
+ end
9
+
10
+ def self.call(session)
11
+ sql_code = SQLCode.read sql_filename
12
+
13
+ session.execute(sql_code)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,57 @@
1
+ module EventSource
2
+ module Postgres
3
+ module Database
4
+ module Functions
5
+ module Create
6
+ def self.call(session)
7
+ Category::Create.(session)
8
+ StreamVersion::Create.(session)
9
+ WriteEvent::Create.(session)
10
+ end
11
+
12
+ module Category
13
+ module Create
14
+ def self.sql_filename
15
+ 'functions/category.sql'
16
+ end
17
+
18
+ def self.call(session)
19
+ sql_code = SQLCode.read sql_filename
20
+
21
+ session.execute(sql_code)
22
+ end
23
+ end
24
+ end
25
+
26
+ module StreamVersion
27
+ module Create
28
+ def self.sql_filename
29
+ 'functions/stream-version.sql'
30
+ end
31
+
32
+ def self.call(session)
33
+ sql_code = SQLCode.read sql_filename
34
+
35
+ session.execute(sql_code)
36
+ end
37
+ end
38
+ end
39
+
40
+ module WriteEvent
41
+ module Create
42
+ def self.sql_filename
43
+ 'functions/write-event.sql'
44
+ end
45
+
46
+ def self.call(session)
47
+ sql_code = SQLCode.read sql_filename
48
+
49
+ session.execute(sql_code)
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,87 @@
1
+ module EventSource
2
+ module Postgres
3
+ module Database
4
+ module Indexes
5
+ module Create
6
+ def self.call(session)
7
+ Category::GlobalPosition::Create.(session)
8
+ Category::Create.(session)
9
+ ID::Create.(session)
10
+ StreamName::PositionUniq::Create.(session)
11
+ StreamName::Create.(session)
12
+ end
13
+
14
+ module Category
15
+ module Create
16
+ def self.sql_filename
17
+ 'indexes/events-category.sql'
18
+ end
19
+
20
+ def self.call(session)
21
+ sql_code = SQLCode.read sql_filename
22
+
23
+ session.execute(sql_code)
24
+ end
25
+ end
26
+
27
+ module GlobalPosition
28
+ module Create
29
+ def self.sql_filename
30
+ 'indexes/events-category-global-position.sql'
31
+ end
32
+
33
+ def self.call(session)
34
+ sql_code = SQLCode.read sql_filename
35
+
36
+ session.execute(sql_code)
37
+ end
38
+ end
39
+ end
40
+ end
41
+
42
+ module ID
43
+ module Create
44
+ def self.sql_filename
45
+ 'indexes/events-id.sql'
46
+ end
47
+
48
+ def self.call(session)
49
+ sql_code = SQLCode.read sql_filename
50
+
51
+ session.execute(sql_code)
52
+ end
53
+ end
54
+ end
55
+
56
+ module StreamName
57
+ module Create
58
+ def self.sql_filename
59
+ 'indexes/events-stream-name.sql'
60
+ end
61
+
62
+ def self.call(session)
63
+ sql_code = SQLCode.read sql_filename
64
+
65
+ session.execute(sql_code)
66
+ end
67
+ end
68
+
69
+ module PositionUniq
70
+ module Create
71
+ def self.sql_filename
72
+ 'indexes/events-stream-name-position-uniq.sql'
73
+ end
74
+
75
+ def self.call(session)
76
+ sql_code = SQLCode.read sql_filename
77
+
78
+ session.execute(sql_code)
79
+ end
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,12 @@
1
+ module EventSource
2
+ module Postgres
3
+ module Database
4
+ module Recreate
5
+ def self.call
6
+ Delete.()
7
+ Create.()
8
+ end
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ module EventSource
2
+ module Postgres
3
+ module Database
4
+ class Session < Postgres::Session
5
+ def self.build
6
+ instance = new
7
+ settings = Postgres::Settings.build({})
8
+ settings.set(instance)
9
+ instance
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,19 @@
1
+ module EventSource
2
+ module Postgres
3
+ module Database
4
+ module Settings
5
+ def self.user
6
+ ENV['DATABASE_USER'] || 'event_source'
7
+ end
8
+
9
+ def self.password
10
+ ENV['DATABASE_PASSWORD']
11
+ end
12
+
13
+ def self.database
14
+ ENV['DATABASE_NAME'] || 'event_source'
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,17 @@
1
+ module EventSource
2
+ module Postgres
3
+ module Database
4
+ module SQLCode
5
+ def self.read(filename)
6
+ path = File.join root, filename
7
+
8
+ File.read path
9
+ end
10
+
11
+ def self.root
12
+ File.expand_path '../../../../database', __dir__
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,19 @@
1
+ module EventSource
2
+ module Postgres
3
+ module Database
4
+ module Table
5
+ module Create
6
+ def self.sql_filename
7
+ 'table/events-table.sql'
8
+ end
9
+
10
+ def self.call(session)
11
+ sql_code = SQLCode.read sql_filename
12
+
13
+ session.execute(sql_code)
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,30 @@
1
+ module EventSource
2
+ module Postgres
3
+ module Database
4
+ module User
5
+ module Create
6
+ def self.call(session)
7
+ user = Settings.user
8
+ password = Settings.password
9
+
10
+ create_user_statement = "CREATE USER #{user}"
11
+ create_user_statement << " PASSWORD #{password}" unless password.nil?
12
+
13
+ begin
14
+ session.execute(create_user_statement)
15
+ rescue PG::DuplicateObject
16
+ warn "NOTICE: role \"#{user}\" already exists, skipping"
17
+ end
18
+ end
19
+ end
20
+
21
+ module Delete
22
+ def self.call(session)
23
+ user = Settings.user
24
+ session.execute("DROP USER IF EXISTS #{user}")
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,12 @@
1
+ require 'event_source/postgres/database/settings'
2
+ require 'event_source/postgres/database/session'
3
+ require 'event_source/postgres/database/delete'
4
+ require 'event_source/postgres/database/create'
5
+ require 'event_source/postgres/database/user'
6
+ require 'event_source/postgres/database/database'
7
+ require 'event_source/postgres/database/extensions'
8
+ require 'event_source/postgres/database/table'
9
+ require 'event_source/postgres/database/indexes'
10
+ require 'event_source/postgres/database/functions'
11
+ require 'event_source/postgres/database/sql_code'
12
+ require 'event_source/postgres/database/recreate'
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative './scripts_init'
4
+
5
+ EventSource::Postgres::Database::Create.()
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative './scripts_init'
4
+
5
+ EventSource::Postgres::Database::Delete.()
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative './scripts_init'
4
+
5
+ EventSource::Postgres::Database::Recreate.()
@@ -0,0 +1,12 @@
1
+ ENV['CONSOLE_DEVICE'] ||= 'stdout'
2
+ ENV['LOG_LEVEL'] ||= '_min'
3
+
4
+ puts RUBY_DESCRIPTION
5
+
6
+ init_file = File.expand_path('../init.rb', __dir__)
7
+ if File.exist?(init_file)
8
+ require_relative '../init'
9
+ end
10
+
11
+ require 'event_source/postgres'
12
+ require 'event_source/postgres/database'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evt-event_source-postgres
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0.0
4
+ version: 0.16.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Eventide Project
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: scripts
10
10
  cert_chain: []
11
- date: 2017-03-14 00:00:00.000000000 Z
11
+ date: 2017-03-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: evt-event_source
@@ -96,16 +96,49 @@ dependencies:
96
96
  version: '0'
97
97
  description: " "
98
98
  email: opensource@eventide-project.org
99
- executables: []
99
+ executables:
100
+ - evt-pg-create
101
+ - evt-pg-delete
102
+ - evt-pg-recreate
100
103
  extensions: []
101
104
  extra_rdoc_files: []
102
105
  files:
106
+ - database/clear-events-table.sh
107
+ - database/extensions.sql
108
+ - database/functions/category.sql
109
+ - database/functions/stream-version.sql
110
+ - database/functions/write-event.sql
111
+ - database/indexes/events-category-global-position.sql
112
+ - database/indexes/events-category.sql
113
+ - database/indexes/events-id.sql
114
+ - database/indexes/events-stream-name-position-uniq.sql
115
+ - database/indexes/events-stream-name.sql
116
+ - database/install.sh
117
+ - database/list-events.sh
118
+ - database/table/events-table.sql
119
+ - database/test/write-event-expected-version.sql
120
+ - database/test/write-event.sql
121
+ - database/uninstall.sh
122
+ - lib/event_source/loader.rb
103
123
  - lib/event_source/postgres.rb
104
124
  - lib/event_source/postgres/controls.rb
105
125
  - lib/event_source/postgres/controls/category.rb
106
126
  - lib/event_source/postgres/controls/event_data.rb
107
127
  - lib/event_source/postgres/controls/put.rb
108
128
  - lib/event_source/postgres/controls/stream_name.rb
129
+ - lib/event_source/postgres/database.rb
130
+ - lib/event_source/postgres/database/create.rb
131
+ - lib/event_source/postgres/database/database.rb
132
+ - lib/event_source/postgres/database/delete.rb
133
+ - lib/event_source/postgres/database/extensions.rb
134
+ - lib/event_source/postgres/database/functions.rb
135
+ - lib/event_source/postgres/database/indexes.rb
136
+ - lib/event_source/postgres/database/recreate.rb
137
+ - lib/event_source/postgres/database/session.rb
138
+ - lib/event_source/postgres/database/settings.rb
139
+ - lib/event_source/postgres/database/sql_code.rb
140
+ - lib/event_source/postgres/database/table.rb
141
+ - lib/event_source/postgres/database/user.rb
109
142
  - lib/event_source/postgres/get.rb
110
143
  - lib/event_source/postgres/get/last.rb
111
144
  - lib/event_source/postgres/get/last/select_statement.rb
@@ -118,6 +151,10 @@ files:
118
151
  - lib/event_source/postgres/settings.rb
119
152
  - lib/event_source/postgres/stream_name.rb
120
153
  - lib/event_source/postgres/write.rb
154
+ - scripts/evt-pg-create
155
+ - scripts/evt-pg-delete
156
+ - scripts/evt-pg-recreate
157
+ - scripts/scripts_init.rb
121
158
  homepage: https://github.com/eventide-project/event-source-postgres
122
159
  licenses:
123
160
  - MIT
@@ -138,7 +175,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
138
175
  version: '0'
139
176
  requirements: []
140
177
  rubyforge_project:
141
- rubygems_version: 2.6.8
178
+ rubygems_version: 2.6.11
142
179
  signing_key:
143
180
  specification_version: 4
144
181
  summary: Event source client for PostgreSQL