1. Create a new empty Rails project called schemer

  2. In your config/database.yml file, point at the database you wish to dump to a migrations file

  3. Run the command rake db:schema:dump This should create a db/schema.rb file. Amazingly this effectively is your migrations file!

  4. To tidy up create a file called file db/migrate/20091125205635_create_initial_schema.rb

  5. Then copy the create_table statements from the schema.rb file into the new file 20091125205635_create_initial_schema.rb Here’s a template

    class CreateInitialSchema < ActiveRecord::Migration
    
        def self.up
            # Put all create_table statements from schema.rb file here
            # Note: You don't need the 'ActiveRecord::Schema.define(:version'
            # line or it's enclosing end statement
            # ...
            # ...
        end
    
        def self.down
            # Don't really need this
        end
    
    end
    
  6. Once you’ve all this done you can just run rake db:migrate and you should have a new sqlite db up and running under db/development.sqlite3

Thanks to Justin Ball on this Nobody Listens Anyway blog at Dump an Existing Database Schema Into a Ruby On Rails Migration Ready Format for the basis of this tip. Sometimes somebody does…