GORM は、初期化時に使用できる構成を提供します。
type Config struct { |
SkipDefaultTransaction
GORM は、データの一貫性を確保するためにトランザクション内で書き込み(作成/更新/削除)操作を実行します。必要ない場合は、初期化時に無効にすることができます。
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
NamingStrategy
GORM は、インターフェース `Namer` を実装する必要があるデフォルトの `NamingStrategy` をオーバーライドすることで、命名規則を変更できます。
type Namer interface { |
デフォルトの `NamingStrategy` は、いくつかのオプションも提供しています。例:
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
Logger
このオプションをオーバーライドすることで、GORM のデフォルトのロガーを変更できます。詳細は Logger を参照してください。
NowFunc
新しいタイムスタンプを作成する際に使用する関数を変更します。
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
DryRun
SQL を実行せずに生成します。生成された SQL を準備またはテストするために使用できます。詳細は Session を参照してください。
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
PrepareStmt
`PreparedStmt` は、SQL を実行する際にプリペアドステートメントを作成し、キャッシュして将来の呼び出しを高速化します。詳細は Session を参照してください。
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
DisableNestedTransaction
db トランザクション内で `Transaction` メソッドを使用する場合、GORM は `SavePoint(savedPointName)`、`RollbackTo(savedPointName)` を使用してネストされたトランザクションをサポートします。`DisableNestedTransaction` オプションを使用して無効にすることができます。詳細は Session を参照してください。
AllowGlobalUpdate
グローバル更新/削除を有効にします。詳細は Session を参照してください。
DisableAutomaticPing
GORM は、データベースの可用性を確認するために初期化後に自動的にデータベースを ping します。`true` に設定することで無効にできます。
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
DisableForeignKeyConstraintWhenMigrating
GORM は、`AutoMigrate` または `CreateTable` の際にデータベースの外部キー制約を自動的に作成します。`true` に設定することで無効にできます。詳細は Migration を参照してください。
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |