evt-event_source-postgres 0.16.0.0 → 0.16.1.0

Sign up to get free protection for your applications and to get access to all the features.
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