The icon_image_alt column in both the host and service tables contains
an image alt text. However, because it is defined as a varchar(32), many
alt texts do not fit. The type has been expanded to text, as with most
free text fields.
Closes#752.
When defining a TimePeriod, the maximum length of a range value was
capped at 255 characters. This limitation has now also been removed by
switching to the Text type.
Closes#724.
While re-reading the schema, I stumbled upon some missing
properties_checksum comments that were also added.
`ColumnMap` provides a cached mapping of structs exported fields to
their database column names. By default, all exported struct fields are
mapped to their database column names using snake case notation. The `-`
(hyphen) directive for the db tag can be used to exclude certain fields.
Since `ColumnMap` uses cache, the returned slice MUST NOT be modified
directly.
During testing, I just encountered a race condition where my Galera
cluster was not yet ready, causing the initial schema check to fail.
```
2024-04-11T08:13:40.401Z INFO icingadb Starting Icinga DB daemon (1.1.1)
2024-04-11T08:13:40.401Z INFO icingadb Connecting to database at 'mysql:3306'
2024-04-11T08:13:40.404Z FATAL icingadb Error 1047 (08S01): WSREP has not yet prepared node for application use
can't check database schema version
github.com/icinga/icingadb/pkg/icingadb.(*DB).CheckSchema
/go/src/github.com/Icinga/icingadb/pkg/icingadb/db.go:115
main.run
/go/src/github.com/Icinga/icingadb/cmd/icingadb/main.go:74
main.main
/go/src/github.com/Icinga/icingadb/cmd/icingadb/main.go:37
runtime.main
/usr/local/go/src/runtime/proc.go:271
runtime.goexit
/usr/local/go/src/runtime/asm_amd64.s:1695
exit status 1
```
This change now also retries the initial cluster check.
References #698.