2024-08-19 01:07:19 -06:00
|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
2024-08-22 00:05:50 -06:00
|
|
|
"embed"
|
2024-08-19 01:07:19 -06:00
|
|
|
"fmt"
|
2024-08-22 00:05:50 -06:00
|
|
|
"git.sa.vin/payne8/libsqldb"
|
2024-08-19 01:07:19 -06:00
|
|
|
"os"
|
|
|
|
)
|
|
|
|
|
2024-08-22 00:05:50 -06:00
|
|
|
//go:embed migrations/*.sql
|
|
|
|
var migrationFiles embed.FS
|
|
|
|
|
2024-08-19 01:07:19 -06:00
|
|
|
func main() {
|
|
|
|
primaryUrl := os.Getenv("LIBSQL_DATABASE_URL")
|
|
|
|
authToken := os.Getenv("LIBSQL_AUTH_TOKEN")
|
|
|
|
|
2024-09-02 15:01:02 -06:00
|
|
|
// Open the database
|
2024-08-22 00:05:50 -06:00
|
|
|
tdb, err := libsqldb.NewLibSqlDB(
|
2024-08-21 23:38:18 -06:00
|
|
|
primaryUrl,
|
2024-10-16 18:04:01 -06:00
|
|
|
libsqldb.WithMigrationFiles(migrationFiles),
|
2024-08-22 00:05:50 -06:00
|
|
|
libsqldb.WithAuthToken(authToken),
|
2024-10-16 18:04:01 -06:00
|
|
|
libsqldb.WithLocalDBName("local.db"), // will not be used for remote-only
|
2024-08-21 23:38:18 -06:00
|
|
|
)
|
2024-08-19 01:07:19 -06:00
|
|
|
if err != nil {
|
|
|
|
fmt.Fprintf(os.Stderr, "failed to open db %s: %s", primaryUrl, err)
|
|
|
|
os.Exit(1)
|
|
|
|
}
|
|
|
|
|
2024-09-02 15:01:02 -06:00
|
|
|
// Migrate the database
|
2024-08-19 01:07:19 -06:00
|
|
|
err = tdb.Migrate()
|
|
|
|
if err != nil {
|
|
|
|
fmt.Fprintf(os.Stderr, "failed to migrate db %s: %s", primaryUrl, err)
|
|
|
|
os.Exit(1)
|
|
|
|
}
|
|
|
|
|
|
|
|
defer tdb.Close()
|
|
|
|
}
|