Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Como faz para apagar as linhas/registros de uma tabela usando GORM

Estou fazendo um ORM usando golang pela primeira vez, quero saber como faz para apagar registros e preciso de dicas de como estruturar o ORM

package dborm

import (
    "gorm.io/driver/postgres"
    "gorm.io/gorm"
)

type BotData struct {
    Name    string
    Message string
}

var dbBotData BotData

func SendDB() {
    dsn := "host=----- user=postgres password=------ dbname=---- port=----- sslmode=disable"
    var err error

    db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
    if err != nil {
        panic("Falha ao conectar ao banco de dados")
    }

    err = db.AutoMigrate(&BotData{})
    if err != nil {
        panic("Falha ao aplicar migrações")
    }
    
    db.Delete(&dbBotData, 1)
    db.Create(&BotData{Name: "Samuel", Message: "121233"})

}

Agradeço desde já a atenção e pela ajuda!

1 resposta
solução!

Olá, Samuel! Tudo bem?

No seu código, você está tentando deletar um registro com o ID 1. Para isso, o método Delete do GORM deve ser usado da seguinte forma:

db.Delete(&BotData{}, 1)

No entanto, percebi que você está tentando deletar um registro antes de criar qualquer um. Isso pode causar um erro, pois o registro com ID 1 pode não existir no banco de dados.

Aqui está um exemplo de como você pode estruturar seu código para criar e deletar registros:

package main

import (
    "gorm.io/driver/postgres"
    "gorm.io/gorm"
)

type BotData struct {
    gorm.Model
    Name    string
    Message string
}

func main() {
    dsn := "host=----- user=postgres password=------ dbname=---- port=----- sslmode=disable"
    db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
    if err != nil {
        panic("Falha ao conectar ao banco de dados")
    }

    err = db.AutoMigrate(&BotData{})
    if err != nil {
        panic("Falha ao aplicar migrações")
    }

    // Criando um novo registro
    botData := BotData{Name: "Samuel", Message: "121233"}
    db.Create(&botData)

    // Deletando o registro
    db.Delete(&BotData{}, botData.ID)
}

Nesse exemplo, eu criei um novo registro e depois o deletei usando o ID do registro criado.

Agora acerca da estrutura, vou estar compartilhando com você dois links para conteúdos muito importantes, o primeiro é da documentação oficial do GORM(em um trecho que comenta sobre o método delete) e o segundo é um artigo que fala sobre a criação de uma aplicação GO usando algumas ferramentas e GORM, você pode utilizar a estrutura desse projeto como base.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.