Files

Class Index [+]

Quicksearch

ActiveRecord::Schema

Active Record Schema

Allows programmers to programmatically define a schema in a portable DSL. This means you can define tables, indexes, etc. without using SQL directly, so your applications can more easily support multiple databases.

Usage:

  ActiveRecord::Schema.define do
    create_table :authors do |t|
      t.string :name, :null => false
    end

    add_index :authors, :name, :unique

    create_table :posts do |t|
      t.integer :author_id, :null => false
      t.string :subject
      t.text :body
      t.boolean :private, :default => false
    end

    add_index :posts, :author_id
  end

ActiveRecord::Schema is only supported by database adapters that also support migrations, the two features being very similar.

Public Class Methods

define(info={}, &block) click to toggle source

Eval the given block. All methods available to the current connection adapter are available within the block, so you can easily use the database definition DSL to build up your schema (create_table, add_index, etc.).

The info hash is optional, and if given is used to define metadata about the current schema (currently, only the schema’s version):

  ActiveRecord::Schema.define(:version => 20380119000001) do
    ...
  end
    # File lib/active_record/schema.rb, line 48
48:     def self.define(info={}, &block)
49:       schema = new
50:       schema.instance_eval(&block)
51: 
52:       unless info[:version].blank?
53:         initialize_schema_migrations_table
54:         assume_migrated_upto_version(info[:version], schema.migrations_paths)
55:       end
56:     end

Public Instance Methods

migrations_paths() click to toggle source
    # File lib/active_record/schema.rb, line 33
33:     def migrations_paths
34:       ActiveRecord::Migrator.migrations_paths
35:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.