schema

package
v8.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 11, 2025 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package schema provides utilities for managing MySQL databases in a multi-tenant application.

The term schema is used interchangeably with database in MySQL for the purposes of this package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func UseDatabase

func UseDatabase(tx *gorm.DB, dbName string) (reset func() error, err error)

UseDatabase sets the database for the given connection to the specified database name. It returns a function that can be used to reset the database to the default value. This function does not perform any validation on the dbName parameter. It is the responsibility of the caller to ensure that the dbName has been sanitized to avoid SQL injection vulnerabilities.

Technically safe for concurrent use by multiple goroutines, but should not be used concurrently ito ensuring data integrity and schema isolation. Use a separate database connection or transaction for each goroutine that requires a different database.

Example:

reset, err := schema.UseDatabase(db, "domain1")
if err != nil {
	// handle the error
}
defer reset() // reset the database to 'public'
// ... do operations with the database with the database set to 'domain1'

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL