mirror of
https://github.com/empayre/fleet.git
synced 2024-11-06 08:55:24 +00:00
57816592ba
not set on the INSERT. - OUT: Only sets the ID on the passed session and returns it. (`CreatedAt`, `AccessedAt`, are not set.) New version: ```go func (ds *Datastore) NewSession(ctx context.Context, userID uint, sessionKey string) (*fleet.Session, error) { sqlStatement := ` INSERT INTO sessions ( user_id, ` + "`key`" + ` ) VALUES(?,?) ` result, err := ds.writer.ExecContext(ctx, sqlStatement, userID, sessionKey) if err != nil { return nil, ctxerr.Wrap(ctx, err, "inserting session") } id, _ := result.LastInsertId() // cannot fail with the mysql driver return ds.sessionByID(ctx, ds.writer, uint(id)) } ``` - IN: Define arguments that are truly used when creating a session. - OUT: Load and return the fleet.Session struct with all values set (using the `ds.writer` to support read replicas correctly). PS: The new `NewSession` version mimics what we already do with other entities, like policies (`Datastore.NewGlobalPolicy`).
52 lines
1.5 KiB
YAML
52 lines
1.5 KiB
YAML
---
|
|
version: "2"
|
|
services:
|
|
mysql_main:
|
|
image: ${FLEET_MYSQL_IMAGE:-mysql:5.7}
|
|
platform: linux/x86_64
|
|
volumes:
|
|
- mysql-persistent-volume-replica-main:/tmp
|
|
command: [
|
|
"mysqld",
|
|
"--datadir=/tmp/mysqldata-replica-main",
|
|
"--event-scheduler=ON",
|
|
# These 3 keys run MySQL with GTID consistency enforced to avoid issues with production deployments that use it.
|
|
"--enforce-gtid-consistency=ON",
|
|
"--log-bin=bin.log",
|
|
"--server-id=1",
|
|
]
|
|
environment: &mysql-default-environment
|
|
MYSQL_ROOT_PASSWORD: toor
|
|
MYSQL_DATABASE: fleet
|
|
MYSQL_USER: fleet
|
|
MYSQL_PASSWORD: insecure
|
|
ports:
|
|
- "3308:3306"
|
|
|
|
mysql_read_replica:
|
|
image: ${FLEET_MYSQL_IMAGE:-mysql:5.7}
|
|
platform: linux/x86_64
|
|
volumes:
|
|
- mysql-persistent-volume-replica-read:/tmp
|
|
# innodb-file-per-table=OFF gives ~20% speedup for test runs.
|
|
command: [
|
|
"mysqld",
|
|
"--datadir=/tmp/mysqldata-replica-read",
|
|
"--slow_query_log=1",
|
|
"--log_output=TABLE",
|
|
"--log-queries-not-using-indexes",
|
|
"--event-scheduler=ON",
|
|
"--innodb-file-per-table=OFF",
|
|
# These 3 keys run MySQL with GTID consistency enforced to avoid issues with production deployments that use it.
|
|
"--enforce-gtid-consistency=ON",
|
|
"--log-bin=bin.log",
|
|
"--server-id=2",
|
|
]
|
|
environment: *mysql-default-environment
|
|
ports:
|
|
- "3309:3306"
|
|
|
|
volumes:
|
|
mysql-persistent-volume-replica-main:
|
|
mysql-persistent-volume-replica-read:
|