diff --git a/migrator.go b/migrator.go
index <HASH>..<HASH> 100644
--- a/migrator.go
+++ b/migrator.go
@@ -171,8 +171,7 @@ func (m Migrator) Reset() error {
 
 // CreateSchemaMigrations sets up a table to track migrations. This is an idempotent
 // operation.
-func (m Migrator) CreateSchemaMigrations() error {
-	c := m.Connection
+func CreateSchemaMigrations(c *Connection) error {
 	mtn := c.MigrationTableName()
 	err := c.Open()
 	if err != nil {
@@ -197,6 +196,12 @@ func (m Migrator) CreateSchemaMigrations() error {
 	})
 }
 
+// CreateSchemaMigrations sets up a table to track migrations. This is an idempotent
+// operation.
+func (m Migrator) CreateSchemaMigrations() error {
+	return CreateSchemaMigrations(m.Connection)
+}
+
 // Status prints out the status of applied/pending migrations.
 func (m Migrator) Status(out io.Writer) error {
 	err := m.CreateSchemaMigrations()
feat: make CreateSchemaMigrations independent of the migrator (#<I>)