Links
Acts as archive
Categories
Acts as archive
Don't delete your records, move them to a different table.
Like acts_as_paranoid, but doesn't mess with your SQL queries.
Install
sudo gem install acts_as_archive
environment.rb:
config.gem 'acts_as_archive'
Update models
Add acts_as_archive to your models:
class Article < ActiveRecord::Base acts_as_archive end
Run acts_as_archive
cd your_rails_app acts_as_archive Article
Run this command every time you add acts_as_archive to a new model.
This command creates your archive tables (archived_articles as per the example).
Archive tables mirror your table's structure, but with an additional deleted_at column.
That's it!
Use destroy, delete, and delete_all like you normally would.
Records move into the archive table instead of being destroyed.
What if my schema changes?
New migrations are automatically applied to the archive table.
Query the archive
Add ::Archive to your ActiveRecord class:
Article::Archive.find(:first)
Restore from the archive
Use restore_all to copy archived records back to your table:
Article.restore_all([ 'id = ?', 1 ])
Auto-migrate from acts_as_paranoid
If you previously used acts_as_paranoid, the acts_as_archive
command will automatically move your deleted records to the archive table
(see Run acts_as_archive).
Original deleted_at values are preserved.
Add indexes to the archive table
To keep insertions fast, there are no indexes on your archive table by default.
If you are querying your archive a lot, you will want to add indexes:
class Article < ActiveRecord::Base acts_as_archive :indexes => [ :id, :created_at, :deleted_at ] end
Run the acts_as_archive command upon adding new indexes
(see Run acts_as_archive).
Vitals
| Home | http://github.com/winton/acts_as_archive |
|---|---|
| Repository | git://github.com/winton/acts_as_archive.git |
| License | Rails' (MIT) |
| Tags |
|
| Rating | (1 vote) |
| Created | 5 February 2010 |

