GORMは初期化時にConfigを使用できます
type Config struct { |
デフォルトトランザクションを無効にする
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を変更できます。詳細は Logger を参照してください。
NowFunc
新しいタイムスタンプを作成するときに使用する関数を変更します
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
DryRun
実行せずに SQL
を生成し、SQL生成の準備やテストに使用できます。詳細は セッション を参照してください。
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
PrepareStmt
PreparedStmt
は任意の SQL を実行するときに用意されたステートメントを作成し、将来の呼び出しを高速化するためにキャッシュします。詳細は セッション を参照してください。
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
トランザクションのネストを無効にする
トランザクション内で Transaction
メソッドを使用した場合、GORMは SavePoint(savedPointName)
, RollbackTo(savedPointName)
を利用してトランザクションのネストをサポートしています。これを無効にするには、DisableNestedTransaction
オプションを利用します。詳細については、Session を参照してください。
Global Updateを有効にする
Global update/deleteを有効にすることが可能です。詳細は Session を参照してください。
自動の Ping を無効にする
GORMはデータベースの可用性をチェックするため、初期化後に自動でデータベースに ping を行います。以下の設定を true
に設定してすることでこれを無効にできます。
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |
マイグレーション時の外部キー制約を無効にする
GORMは、AutoMigrate
または CreateTable
実行時にデータベースの外部キー制約を自動的に作成します。以下の設定を true
に設定することでこれを無効できます。詳細については、マイグレーションを参照してください。
db, err := gorm.Open(sqlite.Open("gorm.db"), &gorm.Config{ |