バージョン管理されたSQLファイルやGo関数でデータベースのスキーマ変更を管理するCLI兼Goライブラリ。
go-gorm/gorm
Goの構造体をデータベースのテーブルに対応付け、関連付け、フック、トランザクション、マイグレーションに対応する多機能ORMです。
- スター
- 39,978
- フォーク
- 4,220
- 未解決の Issue
- 554
- 最終コミット
- 先月
これは何?
GORMはGo向けのオブジェクト関係マッピングライブラリです。Goの構造体でモデルを定義し、クエリごとにSQLを手書きせずに作成、読み取り、更新、削除を実行できます。必要に応じてSQLビルダーや生のSQLも利用できます。
has one、has many、belongs to、many to many、ポリモーフィック関連付け、単一テーブル継承といった一般的なリレーショナルパターンに対応し、PreloadやJoinsによる先行読み込みも利用できます。また、セーブポイント付きトランザクション、バッチ挿入、upsert、行ロック、作成・更新・削除・検索処理の前後に実行するフック、自動スキーママイグレーションも提供します。
GORMはプラグインAPIで拡張できます。公式ドキュメントで紹介されているプラグインには、複数データベースや読み書き分割に対応するデータベースリゾルバーと、Prometheus連携があります。ドキュメントとガイドはgorm.ioで公開されています。
主な機能
- 01has one、has many、belongs to、many to many、ポリモーフィック関連付けなどの関連付けに対応。
- 02PreloadやJoinsによる先行読み込み。
- 03ネストしたトランザクションとセーブポイントに対応。
- 04バッチ挿入、upsert、行ロック、FindInBatchesに対応。
- 05作成、保存、更新、削除、検索時のフック。
- 06自動マイグレーションとプラグインAPI。
ユースケース
- クエリごとにSQLを手書きせず、リレーショナルデータベースを使ったGoのWebサービスを構築する。
- リゾルバープラグインを使って、読み書き分割や複数のデータベース接続を追加する。
- 自動マイグレーションで、開発中のスキーマ変更を管理する。
クイックスタート
- 1
インストール方法と使い方については、gorm.io のガイドをお読みください
トピック
よくある質問
- gorm とは?
- Goの構造体をデータベースのテーブルに対応付け、関連付け、フック、トランザクション、マイグレーションに対応する多機能ORMです。 GORMはGo向けのオブジェクト関係マッピングライブラリです。Goの構造体でモデルを定義し、クエリごとにSQLを手書きせずに作成、読み取り、更新、削除を実行できます。必要に応じてSQLビルダーや生のSQLも利用できます。
- gorm は無料で使えますか?ライセンスは?
- gorm は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- gorm は今もメンテナンスされていますか?
- 半年以内に更新あり。gorm の最終コミットは 2026年9月14日 です。
- gorm は何に使えますか?
- クエリごとにSQLを手書きせず、リレーショナルデータベースを使ったGoのWebサービスを構築する。 リゾルバープラグインを使って、読み書き分割や複数のデータベース接続を追加する。 自動マイグレーションで、開発中のスキーマ変更を管理する。
- gorm のインストール方法は?
- インストール方法と使い方については、gorm.io のガイドをお読みください
- gorm はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/go-gorm/gorm
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
PostgreSQL、MySQL、SQLite、MongoDBなどのデータベースに型安全にアクセスできる、Node.js向けTypeScript ORM。
JDBCおよびODBCドライバー経由で100種類以上のデータベースに接続できる、無料のマルチプラットフォーム対応デスクトップSQLクライアント兼データベースツール。
Node.jsなどのJSプラットフォームで使えるTypeScript/JavaScript向けORM。多くのSQL・NoSQLデータベースに対応し、Active RecordとData Mapperの両パターンをサポートします。
PostgreSQL、MySQL、MariaDB、SQLite、MS SQL Server、Snowflake、Oracle、Db2に対応する、Node.js・TypeScript向けのPromiseベースORM。
Goは、シンプルで信頼性が高く、効率的なソフトウェアを開発するためのオープンソースプログラミング言語です。