summaryrefslogtreecommitdiff
path: root/database/migrate.go
diff options
context:
space:
mode:
Diffstat (limited to 'database/migrate.go')
-rw-r--r--database/migrate.go26
1 files changed, 22 insertions, 4 deletions
diff --git a/database/migrate.go b/database/migrate.go
index f10e03b..b75c123 100644
--- a/database/migrate.go
+++ b/database/migrate.go
@@ -13,8 +13,10 @@ func MigrateUsers(dbConn *sql.DB) (*sql.DB, error) {
log.Println("migrating users table")
_, err := dbConn.Exec(`CREATE TABLE IF NOT EXISTS users (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
+ id TEXT PRIMARY KEY,
+ mail TEXT NOT NULL,
username TEXT NOT NULL,
+ display_name TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);`)
if err != nil {
@@ -37,7 +39,7 @@ func MigrateApiKeys(dbConn *sql.DB) (*sql.DB, error) {
key TEXT PRIMARY KEY,
user_id INTEGER NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- FOREIGN KEY (user_id) REFERENCES users (id)
+ FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE
);`)
if err != nil {
return dbConn, err
@@ -49,18 +51,33 @@ func MigrateDNSRecords(dbConn *sql.DB) (*sql.DB, error) {
log.Println("migrating dns_records table")
_, err := dbConn.Exec(`CREATE TABLE IF NOT EXISTS dns_records (
- id INTEGER PRIMARY KEY,
+ id TEXT PRIMARY KEY,
user_id INTEGER NOT NULL,
name TEXT NOT NULL,
type TEXT NOT NULL,
content TEXT NOT NULL,
ttl INTEGER NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
- FOREIGN KEY (user_id) REFERENCES users (id)
+ FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE);`)
+ if err != nil {
+ return dbConn, err
+ }
+ return dbConn, nil
+}
+
+func MigrateUserSessions(dbConn *sql.DB) (*sql.DB, error) {
+ log.Println("migrating user_sessions table")
+
+ _, err := dbConn.Exec(`CREATE TABLE IF NOT EXISTS user_sessions (
+ id TEXT PRIMARY KEY,
+ user_id TEXT NOT NULL,
+ expire_at TIMESTAMP NOT NULL,
+ FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE
);`)
if err != nil {
return dbConn, err
}
+
return dbConn, nil
}
@@ -69,6 +86,7 @@ func Migrate(dbConn *sql.DB) (*sql.DB, error) {
migrations := []Migrator{
MigrateUsers,
+ MigrateUserSessions,
MigrateApiKeys,
MigrateDNSRecords,
}