Skip to content

Commit

Permalink
satellite/satellitedb: edit node_events migration to have different PK
Browse files Browse the repository at this point in the history
Change node_events schema to use an id column as primary key rather than
node id because there can be multiple events per node id.

Change-Id: I518d8ef9ea658764876483e282a4058d3c4910f4
  • Loading branch information
cam-a authored and Storj Robot committed Oct 28, 2022
1 parent 403003c commit 80bfa55
Show file tree
Hide file tree
Showing 7 changed files with 54 additions and 20 deletions.
3 changes: 2 additions & 1 deletion satellite/satellitedb/dbx/satellitedb.dbx
Expand Up @@ -2,14 +2,15 @@

//-- Node Events --//
model node_event (
key node_id
key id

index (
name node_events_email_event_created_at_index
fields email event created_at
where node_event.email_sent = null
)

field id blob
field email text
field node_id blob
field event int
Expand Down
54 changes: 41 additions & 13 deletions satellite/satellitedb/dbx/satellitedb.dbx.go
Expand Up @@ -504,12 +504,13 @@ CREATE TABLE node_api_versions (
PRIMARY KEY ( id )
);
CREATE TABLE node_events (
id bytea NOT NULL,
email text NOT NULL,
node_id bytea NOT NULL,
event integer NOT NULL,
created_at timestamp with time zone NOT NULL DEFAULT current_timestamp,
email_sent timestamp with time zone,
PRIMARY KEY ( node_id )
PRIMARY KEY ( id )
);
CREATE TABLE oauth_clients (
id bytea NOT NULL,
Expand Down Expand Up @@ -1208,12 +1209,13 @@ CREATE TABLE node_api_versions (
PRIMARY KEY ( id )
);
CREATE TABLE node_events (
id bytea NOT NULL,
email text NOT NULL,
node_id bytea NOT NULL,
event integer NOT NULL,
created_at timestamp with time zone NOT NULL DEFAULT current_timestamp,
email_sent timestamp with time zone,
PRIMARY KEY ( node_id )
PRIMARY KEY ( id )
);
CREATE TABLE oauth_clients (
id bytea NOT NULL,
Expand Down Expand Up @@ -4957,6 +4959,7 @@ func (f NodeApiVersion_UpdatedAt_Field) value() interface{} {
func (NodeApiVersion_UpdatedAt_Field) _Column() string { return "updated_at" }

type NodeEvent struct {
Id []byte
Email string
NodeId []byte
Event int
Expand All @@ -4975,6 +4978,25 @@ type NodeEvent_Update_Fields struct {
EmailSent NodeEvent_EmailSent_Field
}

type NodeEvent_Id_Field struct {
_set bool
_null bool
_value []byte
}

func NodeEvent_Id(v []byte) NodeEvent_Id_Field {
return NodeEvent_Id_Field{_set: true, _value: v}
}

func (f NodeEvent_Id_Field) value() interface{} {
if !f._set || f._null {
return nil
}
return f._value
}

func (NodeEvent_Id_Field) _Column() string { return "id" }

type NodeEvent_Email_Field struct {
_set bool
_null bool
Expand Down Expand Up @@ -12394,25 +12416,27 @@ type WalletAddress_Row struct {
}

func (obj *pgxImpl) Create_NodeEvent(ctx context.Context,
node_event_id NodeEvent_Id_Field,
node_event_email NodeEvent_Email_Field,
node_event_node_id NodeEvent_NodeId_Field,
node_event_event NodeEvent_Event_Field,
optional NodeEvent_Create_Fields) (
node_event *NodeEvent, err error) {
defer mon.Task()(&ctx)(&err)
__id_val := node_event_id.value()
__email_val := node_event_email.value()
__node_id_val := node_event_node_id.value()
__event_val := node_event_event.value()
__email_sent_val := optional.EmailSent.value()

var __columns = &__sqlbundle_Hole{SQL: __sqlbundle_Literal("email, node_id, event, email_sent")}
var __placeholders = &__sqlbundle_Hole{SQL: __sqlbundle_Literal("?, ?, ?, ?")}
var __columns = &__sqlbundle_Hole{SQL: __sqlbundle_Literal("id, email, node_id, event, email_sent")}
var __placeholders = &__sqlbundle_Hole{SQL: __sqlbundle_Literal("?, ?, ?, ?, ?")}
var __clause = &__sqlbundle_Hole{SQL: __sqlbundle_Literals{Join: "", SQLs: []__sqlbundle_SQL{__sqlbundle_Literal("("), __columns, __sqlbundle_Literal(") VALUES ("), __placeholders, __sqlbundle_Literal(")")}}}

var __embed_stmt = __sqlbundle_Literals{Join: "", SQLs: []__sqlbundle_SQL{__sqlbundle_Literal("INSERT INTO node_events "), __clause, __sqlbundle_Literal(" RETURNING node_events.email, node_events.node_id, node_events.event, node_events.created_at, node_events.email_sent")}}
var __embed_stmt = __sqlbundle_Literals{Join: "", SQLs: []__sqlbundle_SQL{__sqlbundle_Literal("INSERT INTO node_events "), __clause, __sqlbundle_Literal(" RETURNING node_events.id, node_events.email, node_events.node_id, node_events.event, node_events.created_at, node_events.email_sent")}}

var __values []interface{}
__values = append(__values, __email_val, __node_id_val, __event_val, __email_sent_val)
__values = append(__values, __id_val, __email_val, __node_id_val, __event_val, __email_sent_val)

__optional_columns := __sqlbundle_Literals{Join: ", "}
__optional_placeholders := __sqlbundle_Literals{Join: ", "}
Expand All @@ -12435,7 +12459,7 @@ func (obj *pgxImpl) Create_NodeEvent(ctx context.Context,
obj.logStmt(__stmt, __values...)

node_event = &NodeEvent{}
err = obj.queryRowContext(ctx, __stmt, __values...).Scan(&node_event.Email, &node_event.NodeId, &node_event.Event, &node_event.CreatedAt, &node_event.EmailSent)
err = obj.queryRowContext(ctx, __stmt, __values...).Scan(&node_event.Id, &node_event.Email, &node_event.NodeId, &node_event.Event, &node_event.CreatedAt, &node_event.EmailSent)
if err != nil {
return nil, obj.makeErr(err)
}
Expand Down Expand Up @@ -20042,25 +20066,27 @@ func (obj *pgxImpl) deleteAll(ctx context.Context) (count int64, err error) {
}

func (obj *pgxcockroachImpl) Create_NodeEvent(ctx context.Context,
node_event_id NodeEvent_Id_Field,
node_event_email NodeEvent_Email_Field,
node_event_node_id NodeEvent_NodeId_Field,
node_event_event NodeEvent_Event_Field,
optional NodeEvent_Create_Fields) (
node_event *NodeEvent, err error) {
defer mon.Task()(&ctx)(&err)
__id_val := node_event_id.value()
__email_val := node_event_email.value()
__node_id_val := node_event_node_id.value()
__event_val := node_event_event.value()
__email_sent_val := optional.EmailSent.value()

var __columns = &__sqlbundle_Hole{SQL: __sqlbundle_Literal("email, node_id, event, email_sent")}
var __placeholders = &__sqlbundle_Hole{SQL: __sqlbundle_Literal("?, ?, ?, ?")}
var __columns = &__sqlbundle_Hole{SQL: __sqlbundle_Literal("id, email, node_id, event, email_sent")}
var __placeholders = &__sqlbundle_Hole{SQL: __sqlbundle_Literal("?, ?, ?, ?, ?")}
var __clause = &__sqlbundle_Hole{SQL: __sqlbundle_Literals{Join: "", SQLs: []__sqlbundle_SQL{__sqlbundle_Literal("("), __columns, __sqlbundle_Literal(") VALUES ("), __placeholders, __sqlbundle_Literal(")")}}}

var __embed_stmt = __sqlbundle_Literals{Join: "", SQLs: []__sqlbundle_SQL{__sqlbundle_Literal("INSERT INTO node_events "), __clause, __sqlbundle_Literal(" RETURNING node_events.email, node_events.node_id, node_events.event, node_events.created_at, node_events.email_sent")}}
var __embed_stmt = __sqlbundle_Literals{Join: "", SQLs: []__sqlbundle_SQL{__sqlbundle_Literal("INSERT INTO node_events "), __clause, __sqlbundle_Literal(" RETURNING node_events.id, node_events.email, node_events.node_id, node_events.event, node_events.created_at, node_events.email_sent")}}

var __values []interface{}
__values = append(__values, __email_val, __node_id_val, __event_val, __email_sent_val)
__values = append(__values, __id_val, __email_val, __node_id_val, __event_val, __email_sent_val)

__optional_columns := __sqlbundle_Literals{Join: ", "}
__optional_placeholders := __sqlbundle_Literals{Join: ", "}
Expand All @@ -20083,7 +20109,7 @@ func (obj *pgxcockroachImpl) Create_NodeEvent(ctx context.Context,
obj.logStmt(__stmt, __values...)

node_event = &NodeEvent{}
err = obj.queryRowContext(ctx, __stmt, __values...).Scan(&node_event.Email, &node_event.NodeId, &node_event.Event, &node_event.CreatedAt, &node_event.EmailSent)
err = obj.queryRowContext(ctx, __stmt, __values...).Scan(&node_event.Id, &node_event.Email, &node_event.NodeId, &node_event.Event, &node_event.CreatedAt, &node_event.EmailSent)
if err != nil {
return nil, obj.makeErr(err)
}
Expand Down Expand Up @@ -28254,6 +28280,7 @@ func (rx *Rx) Create_CouponUsage(ctx context.Context,
}

func (rx *Rx) Create_NodeEvent(ctx context.Context,
node_event_id NodeEvent_Id_Field,
node_event_email NodeEvent_Email_Field,
node_event_node_id NodeEvent_NodeId_Field,
node_event_event NodeEvent_Event_Field,
Expand All @@ -28263,7 +28290,7 @@ func (rx *Rx) Create_NodeEvent(ctx context.Context,
if tx, err = rx.getTx(ctx); err != nil {
return
}
return tx.Create_NodeEvent(ctx, node_event_email, node_event_node_id, node_event_event, optional)
return tx.Create_NodeEvent(ctx, node_event_id, node_event_email, node_event_node_id, node_event_event, optional)

}

Expand Down Expand Up @@ -29953,6 +29980,7 @@ type Methods interface {
coupon_usage *CouponUsage, err error)

Create_NodeEvent(ctx context.Context,
node_event_id NodeEvent_Id_Field,
node_event_email NodeEvent_Email_Field,
node_event_node_id NodeEvent_NodeId_Field,
node_event_event NodeEvent_Event_Field,
Expand Down
3 changes: 2 additions & 1 deletion satellite/satellitedb/dbx/satellitedb.dbx.pgx.sql
Expand Up @@ -184,12 +184,13 @@ CREATE TABLE node_api_versions (
PRIMARY KEY ( id )
);
CREATE TABLE node_events (
id bytea NOT NULL,
email text NOT NULL,
node_id bytea NOT NULL,
event integer NOT NULL,
created_at timestamp with time zone NOT NULL DEFAULT current_timestamp,
email_sent timestamp with time zone,
PRIMARY KEY ( node_id )
PRIMARY KEY ( id )
);
CREATE TABLE oauth_clients (
id bytea NOT NULL,
Expand Down
3 changes: 2 additions & 1 deletion satellite/satellitedb/dbx/satellitedb.dbx.pgxcockroach.sql
Expand Up @@ -184,12 +184,13 @@ CREATE TABLE node_api_versions (
PRIMARY KEY ( id )
);
CREATE TABLE node_events (
id bytea NOT NULL,
email text NOT NULL,
node_id bytea NOT NULL,
event integer NOT NULL,
created_at timestamp with time zone NOT NULL DEFAULT current_timestamp,
email_sent timestamp with time zone,
PRIMARY KEY ( node_id )
PRIMARY KEY ( id )
);
CREATE TABLE oauth_clients (
id bytea NOT NULL,
Expand Down
3 changes: 2 additions & 1 deletion satellite/satellitedb/migrate.go
Expand Up @@ -2121,12 +2121,13 @@ func (db *satelliteDB) PostgresMigration() *migrate.Migration {
Version: 214,
Action: migrate.SQL{
`CREATE TABLE node_events (
id bytea NOT NULL,
node_id bytea NOT NULL,
email text NOT NULL,
event integer NOT NULL,
created_at timestamp with time zone NOT NULL DEFAULT current_timestamp,
email_sent timestamp with time zone,
PRIMARY KEY ( node_id )
PRIMARY KEY ( id )
);`,
`CREATE INDEX IF NOT EXISTS node_events_email_event_created_at_index ON node_events ( email, event, created_at )
WHERE email_sent IS NULL;`,
Expand Down
3 changes: 2 additions & 1 deletion satellite/satellitedb/migratez.go
Expand Up @@ -193,12 +193,13 @@ CREATE TABLE nodes (
PRIMARY KEY ( id )
);
CREATE TABLE node_events (
id bytea NOT NULL,
email text NOT NULL,
node_id bytea NOT NULL,
event integer NOT NULL,
created_at timestamp with time zone NOT NULL DEFAULT current_timestamp,
email_sent timestamp with time zone,
PRIMARY KEY ( node_id )
PRIMARY KEY ( id )
);
CREATE TABLE node_api_versions (
id bytea NOT NULL,
Expand Down
5 changes: 3 additions & 2 deletions satellite/satellitedb/testdata/postgres.v214.sql
Expand Up @@ -177,12 +177,13 @@ CREATE TABLE nodes (
PRIMARY KEY ( id )
);
CREATE TABLE node_events (
id bytea NOT NULL,
email text NOT NULL,
node_id bytea NOT NULL,
event integer NOT NULL,
created_at timestamp with time zone NOT NULL DEFAULT current_timestamp,
email_sent timestamp with time zone,
PRIMARY KEY ( node_id )
PRIMARY KEY ( id )
);
CREATE TABLE node_api_versions (
id bytea NOT NULL,
Expand Down Expand Up @@ -772,4 +773,4 @@ INSERT INTO "reverification_audits" ("node_id", "stream_id", "position", "piece_

-- NEW DATA --

INSERT INTO "node_events" ("email", "node_id", "event", "created_at", "email_sent") VALUES ('test@storj.test', E'\\153\\313\\233\\074\\327\\177\\136\\070\\346\\001', 1, '2019-02-14 08:28:24.614594+00', '2019-02-14 08:28:24.614594+00');
INSERT INTO "node_events" ("id", "email", "node_id", "event", "created_at", "email_sent") VALUES (E'\\362\\341\\363\\371>+F\\256\\263\\300\\273|\\342N\\347\\017', 'test@storj.test', E'\\153\\313\\233\\074\\327\\177\\136\\070\\346\\001', 1, '2019-02-14 08:28:24.614594+00', '2019-02-14 08:28:24.614594+00');

0 comments on commit 80bfa55

Please sign in to comment.