CLI и библиотека Go для управления изменениями схемы БД с помощью версионируемых SQL-файлов или Go-функций.
go-gorm/gorm
Полнофункциональная ORM для Go: преобразует структуры в таблицы БД и поддерживает связи, хуки, транзакции и миграции.
- Звёзды
- 39,978
- Форки
- 4,220
- Открытые issues
- 554
- Последний коммит
- в прошлом месяце
Что это?
GORM — библиотека объектно-реляционного отображения для Go. Она позволяет описывать модели в виде структур Go и выполнять операции создания, чтения, обновления и удаления, не пиша вручную SQL для каждого запроса. При необходимости доступны конструктор SQL-запросов и выполнение обычного SQL.
Библиотека поддерживает распространённые типы связей в реляционных БД: has one, has many, belongs to, many to many, полиморфные связи и наследование с одной таблицей, а также предварительную загрузку данных через Preload и Joins. Кроме того, в ней есть транзакции с точками сохранения, пакетные вставки, upsert-операции, блокировки строк, хуки для операций создания, обновления, удаления и поиска, а также автоматические миграции схемы.
GORM можно расширять с помощью plugin API. Среди описанных плагинов — резолвер для работы с несколькими базами данных и разделения чтения и записи, а также интеграция с Prometheus. Документация и руководства доступны на gorm.io.
Ключевые возможности
- 01Связи: has one, has many, belongs to, many to many и полиморфные связи.
- 02Предварительная загрузка данных через Preload и Joins.
- 03Транзакции с вложенными транзакциями и точками сохранения.
- 04Пакетные вставки, upsert, блокировка строк и FindInBatches.
- 05Хуки для операций create, save, update, delete и find.
- 06Автоматические миграции и plugin API.
Сценарии использования
- Создание веб-сервиса на Go с реляционной базой данных без необходимости вручную писать SQL для каждого запроса.
- Настройка разделения чтения и записи или подключений к нескольким базам данных с помощью плагина-резолвера.
- Управление изменениями схемы во время разработки с помощью автоматических миграций.
Быстрый старт
- 1
Ознакомьтесь с руководствами на gorm.io по установке и использованию
Темы
Частые вопросы
- Что такое gorm?
- Полнофункциональная ORM для Go: преобразует структуры в таблицы БД и поддерживает связи, хуки, транзакции и миграции. GORM — библиотека объектно-реляционного отображения для Go. Она позволяет описывать модели в виде структур Go и выполнять операции создания, чтения, обновления и удаления, не пиша вручную SQL для каждого запроса. При необходимости доступны конструктор SQL-запросов и выполнение обычного SQL.
- gorm можно использовать бесплатно? Какая у него лицензия?
- gorm распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
- gorm всё ещё поддерживается?
- Обновлялся за последние 6 месяцев. Последний коммит в gorm — 14 сент. 2026 г..
- Для чего можно использовать gorm?
- Создание веб-сервиса на Go с реляционной базой данных без необходимости вручную писать SQL для каждого запроса. Настройка разделения чтения и записи или подключений к нескольким базам данных с помощью плагина-резолвера. Управление изменениями схемы во время разработки с помощью автоматических миграций.
- Как установить gorm?
- Ознакомьтесь с руководствами на gorm.io по установке и использованию
- Где скачать gorm?
- Исходный код и инструкции по установке — на GitHub: https://github.com/go-gorm/gorm
Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.
Похожие проекты
TypeScript ORM для Node.js с типобезопасным доступом к PostgreSQL, MySQL, SQLite, MongoDB и другим базам данных.
Бесплатный кроссплатформенный SQL-клиент для настольных ПК и инструмент для работы с базами данных: поддерживает более 100 баз через драйверы JDBC и ODBC.
ORM для TypeScript и JavaScript, работающий в Node.js и других JS-средах и поддерживающий паттерны Active Record и Data Mapper для множества SQL- и NoSQL-баз данных.
ORM для Node.js и TypeScript на основе промисов, поддерживающая PostgreSQL, MySQL, MariaDB, SQLite, MS SQL Server, Snowflake, Oracle и Db2.
Go — язык программирования с открытым исходным кодом для создания простого, надёжного и эффективного ПО.