diff --git a/database/gdb/gdb.go b/database/gdb/gdb.go index 01279f6bb..fbe2a7d03 100644 --- a/database/gdb/gdb.go +++ b/database/gdb/gdb.go @@ -11,6 +11,7 @@ import ( "database/sql" "errors" "fmt" + "github.com/gogf/gf/internal/cmdenv" "time" "github.com/gogf/gf/container/gvar" @@ -262,8 +263,17 @@ var ( // regularFieldNameRegPattern is the regular expression pattern for a string // which is a regular field name of table. regularFieldNameRegPattern = `^[\w\.\-]+$` + + // allDryRun sets dry-run feature for all database connections. + // It is commonly used for command options for convenience. + allDryRun = false ) +func init() { + // allDryRun is initialized from environment or command options. + allDryRun = cmdenv.Get("gf.gdb.dryrun", false).Bool() +} + // Register registers custom database driver to gdb. func Register(name string, driver Driver) error { driverMap[name] = driver diff --git a/database/gdb/gdb_core_config.go b/database/gdb/gdb_core_config.go index 9bee4bde3..6dc91f117 100644 --- a/database/gdb/gdb_core_config.go +++ b/database/gdb/gdb_core_config.go @@ -186,6 +186,10 @@ func (c *Core) SetDryRun(dryrun bool) { // GetDryRun returns the DryRun value. func (c *Core) GetDryRun() bool { + if allDryRun { + // Globally set. + return true + } return c.dryrun.Val() }