If I send data over ILP, QuestDB will automatically create a table if it does not exist. I want to disable this, as I want to make sure my tables are always created beforehand with the right structure (partitioning, deduplication, data types…) rather than with the guessed structure by the engine.
I just tried it out via env variable QDB_LINE_AUTO_CREATE_NEW_TABLES = false. If I try to send data via ILP I get
error in line 1: table: trades; table does not exist, creating new tables is disabled
There is also a similar flag to avoid auto column creation.
If using QuestDB Cloud or QuestDB Enterprise, ACLs could be used so users or service accounts with the ILP grant don’t have permissions to CREATE TABLE or ADD COLUMN.