Skip to content
Snippets Groups Projects
Commit 0458a1cd authored by Jamie Tanna's avatar Jamie Tanna
Browse files

Merge branch 'feature/warn-init' into 'main'

Warn if re-initialising the same database

Closes #177

See merge request !122
parents 38e9ea94 ef6c73c7
Branches
Tags v0.44.2
Loading
Pipeline #1014494402 passed
package cmd
import (
"context"
"database/sql"
"fmt"
"os"
"dmd.tanna.dev/internal/metadata/db"
"dmd.tanna.dev/internal/repositories"
......@@ -14,6 +16,8 @@ var dbInitCmd = &cobra.Command{
Short: "Initialise the local database",
Long: `Initialise the local database before importing data into it.`,
Run: func(cmd *cobra.Command, args []string) {
warnIfDatabaseExists(cmd.Context(), databasePath)
sqlDB, err := sql.Open("sqlite", databasePath)
cobra.CheckErr(err)
......@@ -31,3 +35,22 @@ var dbInitCmd = &cobra.Command{
func init() {
dbCmd.AddCommand(dbInitCmd)
}
func warnIfDatabaseExists(ctx context.Context, databasePath string) {
if _, err := os.Stat(databasePath); err != nil {
return
}
sqlDB, err := sql.Open("sqlite", databasePath)
if err != nil {
return
}
metadata := db.New(sqlDB)
m, err := metadata.RetrieveDMDVersion(ctx)
if err == nil {
logger.Warn(fmt.Sprintf("The database %s has already been initialised, so re-initialising it may not work, as `dmd` does not perform migrations", databasePath), "dmdVersion", m.Value)
} else {
logger.Warn(fmt.Sprintf("The file %s already exists, so re-initialising it may not work, as `dmd` does not perform migrations", databasePath))
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment