Skip to main content

SQL adapters (PostgreSQL & MySQL)

Table prefix

Default prefix: goauth_ → tables goauth_users, goauth_sessions, etc.

postgres.New(db, postgres.WithPrefix("myapp_"))

Schema

Run automatically when adapter implements Migrator and is passed to goauth.New:

TablePurpose
{prefix}usersUser profiles
{prefix}accountsOAuth provider links
{prefix}sessionsDatabase sessions (id UUID, session_token unique)
{prefix}verification_tokensEmail, OTP, MFA, passkey challenges
{prefix}authenticatorsWebAuthn credentials

Manual migration:

_, err := db.Exec(postgres.Schema("goauth_"))

sqladapter.DB

Both adapters accept anything implementing sqladapter.DB (*sql.DB, GORM pool).

MySQL UseVerificationToken prefers sqladapter.TxBeginner for atomic delete — use *sql.DB or gormDB.DB().

Advanced: connection strings

PostgreSQL:

postgres://user:pass@host:5432/db?sslmode=require

MySQL:

user:pass@tcp(host:3306)/db?parseTime=true&loc=UTC

Enable multiStatements=true for mysql driver if running raw Schema() in one Exec.