From 45d09731372cb35a47b20f62db695b0bfb846c86 Mon Sep 17 00:00:00 2001 From: Rauno Ots Date: Wed, 2 Dec 2020 00:11:10 +0100 Subject: [PATCH] gen_sqlboiler: fix incorrect database path for non-default sqlite location (#603) * the generator should use the same path as the database/drivers/sqlite3 * remove unused data directory * generate sqlboiler.json for model generation * ignore target folder --- .gitignore | 5 ++++- Makefile | 14 +++++++++++--- cmd/gen_sqlboiler_config/main.go | 15 ++++++--------- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/.gitignore b/.gitignore index 71bf5972..e09533d7 100644 --- a/.gitignore +++ b/.gitignore @@ -32,4 +32,7 @@ sqlboiler.json # GCT API Check backup.json -.DS_STORE \ No newline at end of file +.DS_STORE + +# Designated generated files dir +target/ diff --git a/Makefile b/Makefile index 01b0e04e..c93eae84 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,7 @@ GCTPROFILERLISTENPORT=8085 CRON = $(TRAVIS_EVENT_TYPE) DRIVER ?= psql RACE_FLAG := $(if $(NO_RACE_TEST),,-race) +CONFIG_FLAG = $(if $(CONFIG),-config $(CONFIG),) .PHONY: get linter check test build install update_deps @@ -52,9 +53,16 @@ profile_heap: profile_cpu: go tool pprof -http "localhost:$(GCTPROFILERLISTENPORT)" 'http://localhost:$(GCTLISTENPORT)/debug/pprof/profile' -gen_db_models: +.PHONY: gen_db_models +gen_db_models: target/sqlboiler.json ifeq ($(DRIVER), psql) - sqlboiler -o database/models/postgres -p postgres --no-auto-timestamps --wipe $(DRIVER) + sqlboiler -c $< -o database/models/postgres -p postgres --no-auto-timestamps --wipe $(DRIVER) +else ifeq ($(DRIVER), sqlite3) + sqlboiler -c $< -o database/models/sqlite3 -p sqlite3 --no-auto-timestamps --wipe $(DRIVER) else - sqlboiler -o database/models/sqlite3 -p sqlite3 --no-auto-timestamps --wipe $(DRIVER) + $(error Driver '$(DRIVER)' not supported) endif + +target/sqlboiler.json: + mkdir -p $(@D) + go run ./cmd/gen_sqlboiler_config/main.go $(CONFIG_FLAG) -outdir $(@D) diff --git a/cmd/gen_sqlboiler_config/main.go b/cmd/gen_sqlboiler_config/main.go index 2f1aa76e..2409e81f 100644 --- a/cmd/gen_sqlboiler_config/main.go +++ b/cmd/gen_sqlboiler_config/main.go @@ -7,9 +7,7 @@ import ( "io/ioutil" "os" "path/filepath" - "runtime" - "github.com/thrasher-corp/gocryptotrader/common" "github.com/thrasher-corp/gocryptotrader/config" "github.com/thrasher-corp/gocryptotrader/core" "github.com/thrasher-corp/gocryptotrader/database" @@ -17,9 +15,8 @@ import ( ) var ( - configFile string - defaultDataDir string - outputFolder string + configFile string + outputFolder string ) var sqlboilerConfig map[string]driverConfig @@ -41,7 +38,6 @@ func main() { fmt.Println() flag.StringVar(&configFile, "config", config.DefaultFilePath(), "config file to load") - flag.StringVar(&defaultDataDir, "datadir", common.GetDefaultDataDir(runtime.GOOS), "default data directory for GoCryptoTrader files") flag.StringVar(&outputFolder, "outdir", "", "overwrite default output folder") flag.Parse() @@ -82,7 +78,7 @@ func convertGCTtoSQLBoilerConfig(c *database.Config) { dbType = "psql" } if dbType == database.DBSQLite || dbType == database.DBSQLite3 { - tempConfig.DBName = convertDBName(c.Database) + tempConfig.DBName = getLoadedDBPath() } else { tempConfig.User = c.Username tempConfig.Pass = c.Password @@ -95,6 +91,7 @@ func convertGCTtoSQLBoilerConfig(c *database.Config) { sqlboilerConfig[dbType] = tempConfig } -func convertDBName(in string) string { - return filepath.Join(common.GetDefaultDataDir(runtime.GOOS), "database", in) +// getLoadedDBPath gets the path loaded by 'database/drivers/sqlite3' +func getLoadedDBPath() string { + return filepath.Join(database.DB.DataPath, database.DB.Config.Database) }