PostgreSQL - это надежная система реляционных баз данных с открытым исходным кодом
Вы можете эффективно интегрировать ее с Go (Golang), используя библиотеку GORM
GORM упрощает взаимодействие с базами данных, предоставляя платформу объектно-реляционного отображения (ORM)
В этом подробном руководстве мы расскажем вам об основных шагах по настройке GORM с PostgreSQL в приложении Go
Подключимся к PostgreSQL, определим модели, выполним CRUD-операции (создавать, читать, обновлять, удалять)
Прежде чем мы начнем, убедитесь, что у вас есть следующие необходимые компоненты
Среда Go: Установите Go, если вы еще этого не сделали. Вы можете загрузить его с официального веб-сайта Go.
База данных PostgreSQL: PostgreSQL должен быть установлен и запущен.
Убедитесь, что у вас есть доступ к экземпляру базы данных PostgreSQL с необходимыми учетными данными.
Убедитесь, что сервер PostgreSQL доступен из вашего приложения Go.
Библиотека GORM: Установите библиотеку GORM с помощью go get:
go get -u gorm.io/gorm
go get -u gorm.io/driver/postgres
Шаг 1. Настройка среды GORM
Первым шагом является настройка среды GORM в вашем проекте Go.
Создайте файл Go (например, main.go) и импортируйте необходимые пакеты.:
package main
Определите свои модели как структуры Go с соответствующими тегами полей, чтобы сопоставить их столбцам PostgreSQL.
Например, давайте создадим “пользовательскую” модель:
type User struct {
ID uint `gorm:"primaryKey"`
Username string `gorm:"unique"`
Email string
}
Шаг 4: Миграция базы данных
GORM предоставляет функцию автоматической миграции базы данных, которая создает таблицы на основе определений вашей модели.
В вашей основной функции вызовите функцию автоматической миграции для выполнения этой миграции:
func main() {
db, err := connectToPostgreSQL()
if err != nil {
log.Fatal(err)
}
defer db.Close()
Подтягиваем зависимости для запуска миграций:
$ cd /opt
$ go mod init module-name
$ go env -w GO111MODULE=auto
$ go get gorm.io/gorm
$ go get gorm.io/driver/postgres
Давайте создадим простую программу Go, которая:
1. подключается к PostgreSQL
2. выполняет операции CRUD
3. отображает результаты