lint: convert snake to camel case
This commit is contained in:
@@ -17,18 +17,18 @@ type DBConfig struct {
|
||||
// is_initialized bool
|
||||
|
||||
// The SQL schema of the database under management
|
||||
sql_schema *string
|
||||
sqlSchema *string
|
||||
|
||||
// Database starts at version 0. First migration brings us to version 1
|
||||
migrations *[]Migration
|
||||
version_number uint
|
||||
migrations *[]Migration
|
||||
versionNumber uint
|
||||
}
|
||||
|
||||
func Init(schema *string, migrationsList *[]Migration) DBConfig {
|
||||
return DBConfig{
|
||||
sql_schema: schema,
|
||||
migrations: migrationsList,
|
||||
version_number: uint(len(*migrationsList)),
|
||||
sqlSchema: schema,
|
||||
migrations: migrationsList,
|
||||
versionNumber: uint(len(*migrationsList)),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@ func (c DBConfig) Create(path string) (*sqlx.DB, error) {
|
||||
if _, err = db.Exec("pragma foreign_keys=on; pragma journal_mode=WAL;"); err != nil {
|
||||
return nil, fmt.Errorf("running pragma statements: %w", err)
|
||||
}
|
||||
if _, err = db.Exec(*c.sql_schema); err != nil {
|
||||
if _, err = db.Exec(*c.sqlSchema); err != nil {
|
||||
return nil, fmt.Errorf("creating schema: %w", err)
|
||||
}
|
||||
|
||||
@@ -79,18 +79,18 @@ func (c DBConfig) CheckAndUpdateVersion(db *sqlx.DB) error {
|
||||
return fmt.Errorf("couldn't check database version: %w", err)
|
||||
}
|
||||
|
||||
if version > c.version_number {
|
||||
return VersionMismatchError{c.version_number, version}
|
||||
if version > c.versionNumber {
|
||||
return VersionMismatchError{c.versionNumber, version}
|
||||
}
|
||||
|
||||
if c.version_number > version {
|
||||
if c.versionNumber > version {
|
||||
fmt.Print(textutils.ColorYellow)
|
||||
fmt.Printf("================================================\n")
|
||||
fmt.Printf("Database version is out of date. Upgrading database from version %d to version %d!\n", version,
|
||||
c.version_number)
|
||||
c.versionNumber)
|
||||
fmt.Print(textutils.ColorReset)
|
||||
|
||||
for i := version; i < c.version_number; i++ {
|
||||
for i := version; i < c.versionNumber; i++ {
|
||||
m := (*c.migrations)[i]
|
||||
if err := m.Apply(db); err != nil {
|
||||
return fmt.Errorf("migration %d: %w", m.ID, err)
|
||||
@@ -103,7 +103,7 @@ func (c DBConfig) CheckAndUpdateVersion(db *sqlx.DB) error {
|
||||
|
||||
fmt.Print(textutils.ColorGreen)
|
||||
fmt.Printf("================================================\n")
|
||||
fmt.Printf("Database version has been upgraded to version %d.\n", c.version_number)
|
||||
fmt.Printf("Database version has been upgraded to version %d.\n", c.versionNumber)
|
||||
fmt.Print(textutils.ColorReset)
|
||||
}
|
||||
|
||||
|
||||
@@ -15,17 +15,17 @@ import (
|
||||
func TestCreateAndConnectToDB(t *testing.T) {
|
||||
assert := assert.New(t)
|
||||
|
||||
_schema_sql, err := os.ReadFile("../../sample_data/test_schemas/food.sql")
|
||||
_schemaSQL, err := os.ReadFile("../../sample_data/test_schemas/food.sql")
|
||||
require.NoError(t, err)
|
||||
schema_sql := string(_schema_sql)
|
||||
schemaSQL := string(_schemaSQL)
|
||||
migrations := []db.Migration{}
|
||||
|
||||
config := db.Init(&schema_sql, &migrations)
|
||||
config := db.Init(&schemaSQL, &migrations)
|
||||
|
||||
data_dir := "../../sample_data/data"
|
||||
_ = os.MkdirAll(data_dir, os.FileMode(0o644))
|
||||
dataDir := "../../sample_data/data"
|
||||
_ = os.MkdirAll(dataDir, os.FileMode(0o644))
|
||||
// Create then connect to a new empty DB
|
||||
dbPath := filepath.Join(data_dir, "test.db")
|
||||
dbPath := filepath.Join(dataDir, "test.db")
|
||||
_ = os.Remove(dbPath) // Delete it if it exists
|
||||
|
||||
_, err = config.Create(dbPath)
|
||||
@@ -38,18 +38,18 @@ func TestVersionUpgrade(t *testing.T) {
|
||||
require := require.New(t)
|
||||
|
||||
// Create a little schema
|
||||
initial_schema := `
|
||||
initialSchema := `
|
||||
create table items(rowid integer primary key);
|
||||
create table db_version (version integer primary key) strict, without rowid;
|
||||
insert into db_version values(0);
|
||||
`
|
||||
migrations := []db.Migration{}
|
||||
config := db.Init(&initial_schema, &migrations)
|
||||
config := db.Init(&initialSchema, &migrations)
|
||||
|
||||
connection, err := config.Create(":memory:")
|
||||
require.NoError(err)
|
||||
|
||||
get_version := func(c *sqlx.DB) (ret int) {
|
||||
getVersion := func(c *sqlx.DB) (ret int) {
|
||||
// TODO: this should be a function exposed by the `db` package itself
|
||||
require.NoError(c.Get(&ret, "select version from db_version"))
|
||||
return
|
||||
@@ -58,21 +58,21 @@ func TestVersionUpgrade(t *testing.T) {
|
||||
var items []int
|
||||
require.NoError(connection.Select(&items, "select * from items"))
|
||||
require.Len(items, 0)
|
||||
require.Equal(0, get_version(connection))
|
||||
require.Equal(0, getVersion(connection))
|
||||
|
||||
// Create a migration to add a new Item
|
||||
migrations = append(migrations, db.Migration{ID: 1, SQL: "insert into items (rowid) values (1)"})
|
||||
config = db.Init(&initial_schema, &migrations) // Reinitialize with the new migration
|
||||
config = db.Init(&initialSchema, &migrations) // Reinitialize with the new migration
|
||||
require.NoError(config.CheckAndUpdateVersion(connection))
|
||||
|
||||
var items2 []int
|
||||
require.NoError(connection.Select(&items2, "select * from items"))
|
||||
require.Len(items2, 1)
|
||||
require.Equal(1, get_version(connection))
|
||||
require.Equal(1, getVersion(connection))
|
||||
|
||||
// Create a migration to add a new Item
|
||||
migrations = append(migrations, db.Migration{ID: 2, SQL: `alter table items add column name string default 'asdf'`})
|
||||
config = db.Init(&initial_schema, &migrations) // Reinitialize with the new migration
|
||||
config = db.Init(&initialSchema, &migrations) // Reinitialize with the new migration
|
||||
require.NoError(config.CheckAndUpdateVersion(connection))
|
||||
|
||||
var items3 []struct {
|
||||
@@ -82,5 +82,5 @@ func TestVersionUpgrade(t *testing.T) {
|
||||
require.NoError(connection.Select(&items3, "select * from items"))
|
||||
require.Len(items2, 1)
|
||||
assert.Equal(t, "asdf", items3[0].Name)
|
||||
require.Equal(2, get_version(connection))
|
||||
require.Equal(2, getVersion(connection))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user