移行中に実行される独自のタイムスタンプメソッドを作成しようとしています。配置されているものは、フィールドにNOT_NULL制約を追加しますが、私は本当にそれを望んでいません。
私が抱えている問題は、マルチスキーマのデータベースを持っていることです。各主要クライアントが独自のスキーマを取得する場所。新しいクライアントをオンボードするときは、新しいテナントレコードを作成してから、新しく作成されたスキーマの移行を実行します。
新しいスキーマは、もちろんデータがない場合を除いて、他のスキーマのテーブルの正確なコピーであると想定されています。
私が実行した最後の移行は、少し古いバージョンのrailsを使用していました。まだ3代ですが、少し古いです。タイムスタンプを作成したとき、それらはNULL可能でした。先日(新しいレールで)移行を実行したとき...まあ、すべてのフィールドがNOT_NULLになりました
update_atは、レコードが作成されたときではなく、更新されたときにのみ入力されるという考えで開発されたコードがあります。(サードパーティのアプリとデータベースの「関数」がレコードを作成します)。レコードを作成するサードパーティのアプリとデータベース関数は、新しいスキーマに分類されます...すべてのテーブルのすべてのNOT_NULL制約を削除しました。手動ですが、将来のすべてのテーブルが修正されるように、移行タスクにクリーンアップを直接書き込む必要はありません。
最善の方法は、変更されたタイムスタンプメソッドをオーバーライドして、既存のコードを壊さないメソッドに戻すことだと思いました。
したがって、元に戻す/オーバーライドする必要がある理由があります。
私の質問は...メソッドをオーバーライドするにはどうすればよいですか。それへの明確なクラスパスが表示されず、オーバーライドする方法が正確にわかりません。