diff options
| author | Thomas Voss <mail@thomasvoss.com> | 2025-06-13 22:13:12 +0200 | 
|---|---|---|
| committer | Thomas Voss <mail@thomasvoss.com> | 2025-06-13 22:13:12 +0200 | 
| commit | b3a46ff36e6e36946dc148e3a50f4479464b4b8d (patch) | |
| tree | 335a4e040ca92f0d20e01bc87008b11aefa31cf7 /src | |
| parent | 7fbec4312c0ee9b03cbd1699db01271b9ae22a97 (diff) | |
Support running test code in last.sql
Diffstat (limited to 'src')
| -rw-r--r-- | src/dbx/.gitignore | 1 | ||||
| -rw-r--r-- | src/dbx/db.go | 23 | ||||
| -rw-r--r-- | src/dbx/sql/000-genesis.sql | 29 | 
3 files changed, 22 insertions, 31 deletions
| diff --git a/src/dbx/.gitignore b/src/dbx/.gitignore new file mode 100644 index 0000000..d14a707 --- /dev/null +++ b/src/dbx/.gitignore @@ -0,0 +1 @@ +sql/last.sql
\ No newline at end of file diff --git a/src/dbx/db.go b/src/dbx/db.go index e0c8e30..3a6f24a 100644 --- a/src/dbx/db.go +++ b/src/dbx/db.go @@ -95,9 +95,17 @@ func applyMigrations(dir string) error {  		return err  	} -	scripts := []string{} +	var ( +		last    string +		scripts []string +	) +  	for _, f := range files { -		scripts = append(scripts, f.Name()) +		if n := f.Name(); n == "last.sql" { +			last = n +		} else { +			scripts = append(scripts, f.Name()) +		}  	}  	sort.Strings(scripts) @@ -132,6 +140,17 @@ func applyMigrations(dir string) error {  		log.Printf("Applied database migration ‘%s’", f)  	} +	if last != "" { +		qry, err := migrations.ReadFile(filepath.Join(dir, last)) +		if err != nil { +			return err +		} +		if _, err := db.Exec(string(qry)); err != nil { +			return fmt.Errorf("error in ‘%s’: %w", last, err) +		} +		log.Printf("Ran ‘%s’\n", last) +	} +  	return nil  } diff --git a/src/dbx/sql/000-genesis.sql b/src/dbx/sql/000-genesis.sql index 6daad31..327ff58 100644 --- a/src/dbx/sql/000-genesis.sql +++ b/src/dbx/sql/000-genesis.sql @@ -37,35 +37,6 @@ CREATE TABLE mintages_c (  	reference TEXT  ); --- TODO: Remove dummy data -INSERT INTO mintages_s ( -	country, -	type, -	year, -	mintmark, -	[€0,01], -	[€0,02], -	[€0,05], -	[€0,10], -	[€0,20], -	[€0,50], -	[€1,00], -	[€2,00], -	reference -) VALUES -	("ad", 0, 2014, NULL, 60000, 60000, 860000, 860000, 860000, 340000, 511843, 360000, NULL), -	("ad", 0, 2015, NULL, 0, 0, 0, 0, 0, 0, 0, 1072400, NULL), -	("ad", 0, 2016, NULL, 0, 0, 0, 0, 0, 0, 2339200, 0, NULL), -	("ad", 0, 2017, NULL, 2582395, 1515000, 2191421, 1103000, 1213000, 968800, 17000, 794588, NULL), -	("ad", 0, 2018, NULL, 2430000, 2550000, 1800000, 980000, 1014000, 890000, 0, 868000, NULL), -	("ad", 0, 2019, NULL, 2447000, 1727000, 2100000, 1610000, 1570000, 930000, 0, 1058310, NULL), -	("ad", 0, 2020, NULL, 0, 0, 0, 860000, 175000, 740000, 0, 1500000, NULL), -	("ad", 0, 2021, NULL, 200000, 700000, 0, 1400000, 1420000, 600000, 50000, 1474500, NULL), -	("ad", 0, 2022, NULL, 700000, 450000, 400000, 700000, 700000, 380000, 0, 1708000, NULL), -	("ad", 0, 2023, NULL, 0, 0, 0, 0, 0, 0, 0, 2075250, NULL), -	("ad", 0, 2024, NULL, 0, 900300, 1950000, 1000000, 700000, 500000, 1050000, 1601200, NULL), -	("ad", 0, 2025, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL); -  CREATE TABLE users (  	email    TEXT COLLATE BINARY,  	username TEXT COLLATE BINARY, |