タグ

MySQLとactiverecordに関するtatsu_toraのブックマーク (2)

  • [ActiveRecord]activerecord-import-0.15系で気をつけること - Qiita

    最近DBのBulk Insert用に、activerecord-importを使用してるのですが、Rails5対応で最新版のactiverecord-importにupdateし使用したところ、思いがけないところでハマってしまったので、備忘録として残しておきます ハマってた内容 Insert用に用意したActiveRecordのModelインスタンス数とimport後のレコード数に差分が生じていた 原因 0.15系だとvalidationがデフォルトでtrueの状態になっており、validationで引っかかっていることに気づかなかった 対策 optionにfalseを渡すのも考えたが、validation通ってないデータが保存されるべきデータではないので、エラーメッセージ等、補足できないかなと調べた どうやらreturn instanceに以下のものがあるっぽい failed_insta

    [ActiveRecord]activerecord-import-0.15系で気をつけること - Qiita
  • ActiveRecordで行ロックをかける方法

    行ロックとは 行ロックとは、テーブルの同一レコードに対して、複数同時に更新できないように制限する仕組みのことです。 Ruby on RailsのActiveRecordには2種類のロック方法があります。 楽観的ロック(Rails依存) 悲観的ロック(DBMS依存) それぞれの違いや使い方について解説していきたいと思います。 楽観的ロック 楽観的ロックとは、DBMSの機能に頼らずロックバージョンをレコードに保存しておくことで、取得時と変更時にロックバージョンに変更がないか確認し、変更があった場合は例外を発生させる方法です。 ロックするタイミング データ更新時 データを複数同時に取得することができるが、途中で更新されていた場合は、更新できない 仕組み テーブルにlock_versionフィールドを追加する lock_versionが書き換わっていたらActiveRecord::StaleObj

    ActiveRecordで行ロックをかける方法
  • 1