public PostgreSqlSnapshotStore(Config snapshotConfig) : base(snapshotConfig) { var config = snapshotConfig.WithFallback(Extension.DefaultJournalConfig); StoredAsType storedAs; var storedAsString = config.GetString("stored-as"); if (!Enum.TryParse(storedAsString, true, out storedAs)) { throw new ConfigurationException($"Value [{storedAsString}] of the 'stored-as' HOCON config key is not valid. Valid values: bytea, json, jsonb."); } QueryExecutor = new PostgreSqlQueryExecutor(new PostgreSqlQueryConfiguration( schemaName: config.GetString("schema-name"), snapshotTableName: config.GetString("table-name"), persistenceIdColumnName: "persistence_id", sequenceNrColumnName: "sequence_nr", payloadColumnName: "payload", manifestColumnName: "manifest", timestampColumnName: "created_at", serializerIdColumnName: "serializer_id", timeout: config.GetTimeSpan("connection-timeout"), storedAs: storedAs, defaultSerializer: config.GetString("serializer"), useSequentialAccess: config.GetBoolean("sequential-access")), Context.System.Serialization); SnapshotSettings = new PostgreSqlSnapshotStoreSettings(config); }
public PostgreSqlSnapshotStore() { _extension = PostgreSqlPersistence.Instance.Apply(Context.System); _settings = _extension.SnapshotStoreSettings; QueryBuilder = new PostgreSqlSnapshotQueryBuilder(_settings.SchemaName, _settings.TableName); QueryMapper = new PostgreSqlSnapshotQueryMapper(Context.System.Serialization); }
public PostgreSqlSnapshotQueryBuilder(PostgreSqlSnapshotStoreSettings settings) { var tableName = settings.TableName; var schemaName = settings.SchemaName; _deleteSql = @"DELETE FROM {0}.{1} WHERE persistence_id = :persistence_id ".QuoteSchemaAndTable(schemaName, tableName); _insertSql = @"INSERT INTO {0}.{1} (persistence_id, sequence_nr, created_at, created_at_ticks, manifest, snapshot) VALUES (:persistence_id, :sequence_nr, :created_at, :created_at_ticks, :manifest, :snapshot)".QuoteSchemaAndTable(schemaName, tableName); _selectSql = @"SELECT persistence_id, sequence_nr, created_at, created_at_ticks, manifest, snapshot FROM {0}.{1} WHERE persistence_id = :persistence_id".QuoteSchemaAndTable(schemaName, tableName); }