Что это?
GORM — это полнофункциональная ORM-библиотека для Go, которая стремится быть удобной для разработчиков: в ней есть ассоциации, хуки, транзакции, миграции и многое другое.
Это фреймворк или библиотека?
Это библиотека, которую вы подключаете к программе на Go, а не самостоятельное приложение или сервер.
Как добавить её в проект?
Подключите GORM как модуль Go в свой проект и следуйте официальным руководствам «Getting Started» по настройке и подключению к базе данных.
Нужен ли отдельный драйвер базы данных для работы?
Да, GORM работает через драйверы/диалекты конкретных баз данных для той SQL-базы, к которой вы подключаетесь, однако в README не перечислены конкретные пакеты драйверов.
Поддерживает ли он маршрутизацию между базами данных из коробки?
Основные возможности встроены, но такие вещи, как разделение чтения и записи между несколькими базами данных, реализуются через расширяемый плагин-API, а не в основном пакете.
Какие типы связей он поддерживает?
Он поддерживает ассоциации Has One, Has Many, Belongs To, Many To Many, Polymorphism и Single-table inheritance.
Поддерживает ли он транзакции?
Да, включая Transactions, Nested Transactions, Save Points и RollbackTo к сохранённой точке.
Может ли он выполнять миграции базы данных?
Да, GORM включает Auto Migrations как одну из своих встроенных возможностей.
Может ли он отслеживать производительность запросов?
Да, через свой плагин-API GORM предлагает плагин Prometheus для мониторинга, а также другие расширения, например Database Resolver.
What are similar projects?
gin-vue-admin, ent, pgx, mysql, gf, drizzle-orm, ai-novel-studio, migrate