Aula 07 - Golang - Fiber - Migrations
Na aula passada criamos a estrutura que vai representar um usuário, isto é, a
struct User.
O
banco de dados está
vazio, vamos criar a
tabela User no banco, e para isso, vamos usar o
Gorm.
fiber-project/database/connect.go
package database
import (
"fmt"
"gorm.io/driver/mysql"
"gorm.io/gorm"
"fiber-project/models"
)
func Connect() {
var dsn = "toticavalcanti:mysql1234@/fluent_admin?charset=utf8mb4&parseTime=True&loc=Local"
var v = "Não conseguiu conectar ao banco de dados"
connection, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic(v)
}
connection.AutoMigrate(&models.User{})
fmt.Println("Conexão OK!")
}
Se o projeto não estiver rodando, execute o air, que instalamos na aula passada.
Veja no banco mysql, que a tabela foi criada.
Agora vamos fazer com que o campo
email seja
único.
Usaremos o uma anotação do
Gorm para isso.
fiber-project/models/user.go
package models
type User struct {
Id uint
FirstName string
LastName string
Email string `gorm:"unique"`
Password string
}
Dê um refresh no banco mysql e veja a mudança no campo email.
Essa é a forma como adicionamos configurações extras, poderíamos usar o
gorm.Model.
fiber-project/models/user.go
package models
import "gorm.io/gorm"
type User struct {
gorm.Model
FirstName string
LastName string
Email string `"unique"`
Password string
}
O
gorm.Model gera vários campos automaticamente, o
ID, o
CreatedAt, o
UpdatedAt e
DeletedAt.
Se você quiser, pode usar, eu vou manter o mais simples, e deixar como tava antes.
É isso, na próxima aula vamos refatorar a função
Register() no arquivo
fiber-project/controllers/authController.go.
Nos vemos na próxima então ;)
Até lá!
Código da aula: Github
Redes Sociais:
Novamente deixo meus link de afiliados:
Obrigado, até a próxima e bons estudos. ;)