mirror of
https://github.com/minio/minio.git
synced 2025-11-25 20:16:10 -05:00
* The user is required to specify a table name and database connection
information in the configuration file.
* INSERTs and DELETEs are done via prepared statements for speed.
* Assumes a table structure, and requires PostgreSQL 9.5 or above due to
the use of UPSERT.
* Creates the table if it does not exist with the given table name using
a query like:
CREATE TABLE myminio (
key varchar PRIMARY KEY,
value JSONB
);
* Vendors some required libraries.
This commit is contained in:
committed by
Harshavardhana
parent
4f902d42b2
commit
315e66858c
@@ -36,6 +36,8 @@ const (
|
||||
queueTypeElastic = "elasticsearch"
|
||||
// Static string indicating queue type 'redis'.
|
||||
queueTypeRedis = "redis"
|
||||
// Static string indicating queue type 'postgresql'.
|
||||
queueTypePostgreSQL = "postgresql"
|
||||
)
|
||||
|
||||
// Topic type.
|
||||
@@ -55,6 +57,7 @@ type notifier struct {
|
||||
NATS map[string]natsNotify `json:"nats"`
|
||||
ElasticSearch map[string]elasticSearchNotify `json:"elasticsearch"`
|
||||
Redis map[string]redisNotify `json:"redis"`
|
||||
PostgreSQL map[string]postgreSQLNotify `json:"postgresql"`
|
||||
// Add new notification queues.
|
||||
}
|
||||
|
||||
@@ -133,6 +136,24 @@ func isElasticQueue(sqsArn arnSQS) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// Returns true if queueArn is for PostgreSQL.
|
||||
func isPostgreSQLQueue(sqsArn arnSQS) bool {
|
||||
if sqsArn.Type != queueTypePostgreSQL {
|
||||
return false
|
||||
}
|
||||
pgNotify := serverConfig.GetPostgreSQLNotifyByID(sqsArn.AccountID)
|
||||
if !pgNotify.Enable {
|
||||
return false
|
||||
}
|
||||
pgC, err := dialPostgreSQL(pgNotify)
|
||||
if err != nil {
|
||||
errorIf(err, "Unable to connect to PostgreSQL server %#v", pgNotify)
|
||||
return false
|
||||
}
|
||||
defer pgC.Close()
|
||||
return true
|
||||
}
|
||||
|
||||
// Match function matches wild cards in 'pattern' for events.
|
||||
func eventMatch(eventType string, events []string) (ok bool) {
|
||||
for _, event := range events {
|
||||
|
||||
Reference in New Issue
Block a user