はじめに
Rails で Devise と論理削除を両立する方法。
TL;DR
- 論理削除は jhawthorn/discard を利用
- 論理削除されたユーザーのログインを無効化
active_for_authentication?をオーバーライド
- DB のユニーク制約を再設定する
validatableと同等のバリデーションを自分で設定
Rails で Devise と論理削除を両立する方法。
active_for_authentication? をオーバーライドvalidatable と同等のバリデーションを自分で設定
MySQL でユニーク制約と論理削除を同時に実現する方法。
status = 1 なら 'hoge', status = 2 なら 'fuga' みたいにできるMySQL で DB を複製(dump & load)する方法、リネーム(新DBに対して旧DBのテーブルを移動)する方法について整理した。
内容としては MySQLでdumpせずに “RENAME DATABASE” を実現する - Qiita の通り。
mysqldump [options] db_name > db_name.dumpmysql [options] new_db_name < db_name.dumpRENAME TABLE db_name.table_name TO new_db_name.table_name × 全テーブルRails で既存の DB を利用するアプリケーションの作り方を調べた。注意点としては、Rails からは DB の更新は行わず、読み込みのみ(Read Only)という構成である。
※最終的にはアクセスログなどのテーブルを更新することになると思うが、「アプリケーション本体の機能としては DB の更新はなし」(別のプログラムで DB が作られる)というイメージ。
config/database.yml と app/models/your_model.rb だけ作れば良いdb/schema.rb や db/migrate/xxxx.rb は不要db/schema.rb あると、DB の構成確認できて便利かもね冒頭に述べた通り、別プログラムで DB が作られているような構成で、ユーザー表示部分のみを Rails で提供したい場合の使い方を調べた。
続きを読む