commit - b25c20b4f35df866bfc43d44cdc78b9876b1b028
commit + be20893f819a5320fcf7aae0fd66f48c2e1651ed
blob - 9e4ecb8a5e91c19c8b0b6edbcf9571bd70c99122
blob + 5df1f44e95df5012ac0d24147c449c696aa34808
--- userdb.go
+++ userdb.go
if err != nil {
return nil, fmt.Errorf("create user db: %w", err)
}
- return db, db.initialise()
+ return db, initialiseUserDB(db.DB)
}
// OpenUserDB opens the named user database file and ticket directory.
+// If the database does not exist, it is created and its tables are
+// initialised ready for use.
func OpenUserDB(name, dir string) (*UserDB, error) {
db, err := sql.Open("sqlite3", name)
if err != nil {
return nil, err
}
- stmt := `CREATE TABLE IF NOT EXISTS users (
- username TEXT PRIMARY KEY,
- password BLOB NOT NULL
-);`
- if _, err := db.Exec(stmt); err != nil {
+ if err := initialiseUserDB(db); err != nil {
return nil, err
}
return &UserDB{db, dir}, db.Ping()
}
-func (db *UserDB) initialise() error {
+func initialiseUserDB(db *sql.DB) error {
stmt := `CREATE TABLE IF NOT EXISTS users (
username TEXT PRIMARY KEY,
password BLOB NOT NULL