Instant deployment with Fleet Managed Cloud. Join the beta
Welcome to the documentation for Fleet, the lightweight telemetry platform for servers and workstations.
Install osquery and Fleet
Get startedCan't find what you need?
SupportWe manage database schemas by a series of migrations defined in go code. We use a customized version of the Goose migrations tool to handle these migrations.
Note: Table migrations should be considered immutable once committed to the Fleet repo. Any changes to an existing table should occur in a new migration executing ALTERs.
Also, note that we don't use the Down
part of the migrations anymore (older migrations did implement them). The Down
function should just return nil
, as we use forward-only migrations.
From the project root, run the following shell command:
make migration name=NameOfMigration
Now edit the generated migration file in server/datastore/mysql/migrations/tables/.
You can then update the database by running the following shell commands:
make fleet
./build/fleet prepare db
Note: This pattern is now deprecated, new data changes are done using the same migrations process as for tables. Since there are a few data migrations using this obsolete pattern, we keep its documentation here:
Populating built-in data is also performed through migrations. All table migrations are performed before any data migrations.
Note: Data migrations can be mutable. If tables are altered in a way that would render a data migration invalid (columns changed/removed), data migrations should be updated to comply with the new schema. Data migrations will not be re-run when they have already been run against a database, but they must be updated to maintain compatibility with a fresh DB.
From the project root, run the following shell command:
make migration name=NameOfMigration
Move the migration file from server/datastore/mysql/migrations/tables/ to server/datastore/mysql/migrations/data/, and change the package tables
to package data
.
Proceed as for table migrations, editing and running the newly created migration file.
If you notice something we've missed or could be improved on, please follow this link and submit a pull request to the Fleet repo.