Skip to content
Git repo for Dave Thomas's AnnotateModels plugin, with some improvings
Find file
Pull request Compare This branch is 2 commits ahead, 4 commits behind bendycode:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


 /_|      _/__/_   /|/|   _/_ / _
(  |/)/)()/(//(-  /   |()(/(-(_)

Add a comment summarizing the current schema to the
bottom of each ActiveRecord model, Test File,
Exemplar, Fixture and Factory source file:

 # == Schema Info
 # Schema version: 20081001061831
 # Table name: line_item
 #  id                  :integer(11)    not null, primary key
 #  order_id            :integer(11)
 #  product_id          :integer(11)    not null
 #  quantity            :integer(11)    not null
 #  unit_price          :float

  class LineItem < ActiveRecord::Base
    belongs_to :product
   . . .

Note that this code will blow away the initial/final comment
block in your models if it looks like it was previously added
by annotate models, so you don't want to add additional text
to an automatically created comment block.

        * * Back up your model files before using... * *


To annotate all your models:

  rake db:annotate

To migrate & annotate:

  rake db:update


Annotate on the head of the file:

  rake db:annotate POSITION='top'

Include schema version:
  rake db:annotate SHOW_SCHEMA_VERSION='true'

Set Options Permanently:

If using bash, you can put these lines in your .bashrc file to set more permanently:
  export POSITION='top'
  export SHOW_SCHEMA_VERSION='true'


Original code by:
   Dave Thomas
   Pragmatic Programmers, LLC

Refactored, improved by
   Alexander Semyonov (
   Marcos Piccinini (
   Stephen Anderson (

Released under the same license as Ruby. No Support. No Warranty.
Something went wrong with that request. Please try again.