mirror of
https://github.com/TECHNOFAB11/dbmate.git
synced 2025-12-12 16:10:03 +01:00
31 lines
781 B
Go
31 lines
781 B
Go
package driver
|
|
|
|
import (
|
|
"database/sql"
|
|
"fmt"
|
|
"github.com/adrianmacneil/dbmate/driver/postgres"
|
|
"github.com/adrianmacneil/dbmate/driver/shared"
|
|
"net/url"
|
|
)
|
|
|
|
// Driver provides top level database functions
|
|
type Driver interface {
|
|
Open(*url.URL) (*sql.DB, error)
|
|
DatabaseExists(*url.URL) (bool, error)
|
|
CreateDatabase(*url.URL) error
|
|
DropDatabase(*url.URL) error
|
|
CreateMigrationsTable(*sql.DB) error
|
|
SelectMigrations(*sql.DB, int) (map[string]bool, error)
|
|
InsertMigration(shared.Transaction, string) error
|
|
DeleteMigration(shared.Transaction, string) error
|
|
}
|
|
|
|
// Get loads a database driver by name
|
|
func Get(name string) (Driver, error) {
|
|
switch name {
|
|
case "postgres":
|
|
return postgres.Driver{}, nil
|
|
default:
|
|
return nil, fmt.Errorf("Unknown driver: %s", name)
|
|
}
|
|
}
|