Open
Conversation
Implements #412 - allows passing an existing *sql.DB connection to MySQL, Postgres, and SQLite backends instead of requiring connection parameters. Changes: - Add NewMysqlBackendWithDB, NewPostgresBackendWithDB, NewSqliteBackendWithDB - Add ownsConnection field to prevent closing user-provided connections - MySQL: Add WithMigrationDSN option for migrations with external connections - Postgres/SQLite: Migrations work directly with passed connection When using *WithDB constructors: - Migrations are disabled by default - Close() will not close the database connection - MySQL requires WithMigrationDSN if ApplyMigrations is enabled
Tests cover: - Using provided connection (ownsConnection=false) - Close() not closing user-provided connections - Migrations disabled by default - Migrations can be enabled - MySQL: migration fails without MigrationDSN
Documents the new constructors for using existing database connections with SQLite, MySQL, and PostgreSQL backends, including: - Usage examples - Migration handling differences - MySQL-specific WithMigrationDSN option
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #412
Allows passing an existing
*sql.DBconnection to MySQL, Postgres, and SQLite backends instead of requiring connection parameters.Changes
NewMysqlBackendWithDB,NewPostgresBackendWithDB,NewSqliteBackendWithDBownsConnectionfield to prevent closing user-provided connectionsWithMigrationDSNoption for migrations with external connectionsBehavior when using
*WithDBconstructorsClose()will not close the database connectionWithMigrationDSNifApplyMigrationsis enabled (due to multi-statement requirement)