From c7f3c92b210eea8a0732d6eeab9782f297294425 Mon Sep 17 00:00:00 2001 From: Bruno Abrantes Date: Tue, 5 Aug 2025 11:51:11 +0200 Subject: [PATCH] feat: add database config setting to drop automatically generated primary keys (#108918) Signed-off-by: Bruno Abrantes --- conf/defaults.ini | 4 ++++ conf/sample.ini | 4 ++++ pkg/services/sqlstore/database_config.go | 2 ++ 3 files changed, 10 insertions(+) diff --git a/conf/defaults.ini b/conf/defaults.ini index 854d348e8c9..be7e06d7223 100644 --- a/conf/defaults.ini +++ b/conf/defaults.ini @@ -200,6 +200,10 @@ transaction_retries = 5 # Set to true to add metrics and tracing for database queries. instrument_queries = false +# Set to true to delete auto-generated primary keys during migrations. +# This is useful when databases have auto-generated primary keys enabled. +delete_auto_gen_ids = false + #################################### Cache server ############################# [remote_cache] # Either "redis", "memcached" or "database" default is "database" diff --git a/conf/sample.ini b/conf/sample.ini index 30e5bb42f6a..6d3afd69292 100644 --- a/conf/sample.ini +++ b/conf/sample.ini @@ -197,6 +197,10 @@ # Set to true to add metrics and tracing for database queries. ;instrument_queries = false +# Set to true to delete auto-generated primary keys during migrations. +# This is useful when databases have auto-generated primary keys enabled. +;delete_auto_gen_ids = false + #################################### Cache server ############################# [remote_cache] # Either "redis", "memcached" or "database" default is "database" diff --git a/pkg/services/sqlstore/database_config.go b/pkg/services/sqlstore/database_config.go index f5ba069df15..47e77640aa8 100644 --- a/pkg/services/sqlstore/database_config.go +++ b/pkg/services/sqlstore/database_config.go @@ -43,6 +43,7 @@ type DatabaseConfig struct { MigrationLock bool MigrationLockAttemptTimeout int LogQueries bool + DeleteAutoGenIDs bool // SQLite only QueryRetries int // SQLite only @@ -123,6 +124,7 @@ func (dbCfg *DatabaseConfig) readConfig(cfg *setting.Cfg) error { dbCfg.TransactionRetries = sec.Key("transaction_retries").MustInt(5) dbCfg.LogQueries = sec.Key("log_queries").MustBool(false) + dbCfg.DeleteAutoGenIDs = sec.Key("delete_auto_gen_ids").MustBool(false) return nil }