summaryrefslogtreecommitdiff
path: root/database/migrate.go
diff options
context:
space:
mode:
authorElizabeth <elizabeth@simponic.xyz>2024-04-09 18:39:14 -0400
committersimponic <simponic@hatecomputers.club>2024-04-09 18:39:14 -0400
commit1d75bf7489527925217bd5611ba7910c0ffe077c (patch)
tree3b6e6056912648a88e1e42c1e42ed7e58e2d4701 /database/migrate.go
parentee49015cc90e6c136ad94243fffc9241b9506a36 (diff)
downloadhatecomputers.club-1d75bf7489527925217bd5611ba7910c0ffe077c.tar.gz
hatecomputers.club-1d75bf7489527925217bd5611ba7910c0ffe077c.zip
profiles (#7)
Reviewed-on: https://git.hatecomputers.club/hatecomputers/hatecomputers.club/pulls/7 Co-authored-by: Elizabeth <elizabeth@simponic.xyz> Co-committed-by: Elizabeth <elizabeth@simponic.xyz>
Diffstat (limited to 'database/migrate.go')
-rw-r--r--database/migrate.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/database/migrate.go b/database/migrate.go
index a117480..e9e21b7 100644
--- a/database/migrate.go
+++ b/database/migrate.go
@@ -4,6 +4,7 @@ import (
"log"
"database/sql"
+
_ "github.com/mattn/go-sqlite3"
)
@@ -127,6 +128,40 @@ func MigrateGuestBook(dbConn *sql.DB) (*sql.DB, error) {
return dbConn, nil
}
+func MigrateProfiles(dbConn *sql.DB) (*sql.DB, error) {
+ log.Println("migrating profiles columns")
+
+ userColumns := map[string]bool{}
+ row, err := dbConn.Query(`PRAGMA table_info(users);`)
+ if err != nil {
+ return dbConn, err
+ }
+ defer row.Close()
+
+ for row.Next() {
+ var columnName string
+ row.Scan(nil, &columnName, nil, nil, nil, nil)
+ userColumns[columnName] = true
+ }
+
+ columns := map[string]string{}
+ columns["pronouns"] = "unspecified"
+ columns["bio"] = "a computer hater"
+ columns["location"] = "earth"
+ columns["website"] = "https://hatecomputers.club"
+ columns["avatar"] = "/static/img/default-avatar.png"
+
+ for column, defaultValue := range columns {
+ if userColumns[column] {
+ continue
+ }
+ log.Println("migrating column", column)
+ _, err = dbConn.Exec(`ALTER TABLE users ADD COLUMN ` + column + ` TEXT NOT NULL DEFAULT '` + defaultValue + `';`)
+ }
+
+ return dbConn, nil
+}
+
func Migrate(dbConn *sql.DB) (*sql.DB, error) {
log.Println("migrating database")
@@ -137,6 +172,7 @@ func Migrate(dbConn *sql.DB) (*sql.DB, error) {
MigrateDomainOwners,
MigrateDNSRecords,
MigrateGuestBook,
+ MigrateProfiles,
}
for _, migration := range migrations {