From c9a08d702d99a332e597b46a3bb65a64256ea4b4 Mon Sep 17 00:00:00 2001 From: Harsh Singhvi Date: Fri, 17 Nov 2023 13:59:21 +0530 Subject: [PATCH] Create indexes --- controllers/controllers.go | 2 +- database/database.go | 10 ++++++++-- models/todo.go | 1 - 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/controllers/controllers.go b/controllers/controllers.go index 318fcb0..96a60dd 100644 --- a/controllers/controllers.go +++ b/controllers/controllers.go @@ -93,7 +93,7 @@ func EditTodo(c *gin.Context) { var todo models.Todo c.BindJSON(&todo) - querry := database.Connection.Model(&models.Todo{}).Set("completed = ?", todo.Completed) + querry := database.Connection.Model(&models.Todo{}).Set("completed = ?", todo.Completed).Set("updated_at = ?", time.Now()) if todo.Text != "" { querry.Set("text = ?", todo.Text) diff --git a/database/database.go b/database/database.go index b8f0734..764e932 100644 --- a/database/database.go +++ b/database/database.go @@ -13,7 +13,6 @@ var Connection *pg.DB func IsDtabaseReady() bool { ctx := Connection.Context() var version string - _, err := Connection.QueryOneContext(ctx, pg.Scan(&version), "SELECT version()") if err != nil { log.Printf("Failed to connect to database") @@ -71,6 +70,13 @@ func CreateTodoTable() error { log.Printf("Error while creating todo table, Reason: %v\n", createError) return createError } - log.Printf("Todo table created") + + _, err := Connection.Exec(`CREATE UNIQUE INDEX IF NOT EXISTS index_todo ON todos(id, completed, created_at, updated_at);`) + + if err != nil { + log.Printf(err.Error()) + } + + log.Printf("Todo table and indexes created") return nil } diff --git a/models/todo.go b/models/todo.go index 6271184..f70b307 100644 --- a/models/todo.go +++ b/models/todo.go @@ -9,4 +9,3 @@ type Todo struct { CreatedAt time.Time `json:"created_at"` UpdatedAt time.Time `json:"updated_at"` } -