はじめに
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.dump
mysql [options] new_db_name < db_name.dump
RENAME 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 で提供したい場合の使い方を調べた。
続きを読む