create_table with unique combo

I need to create a table replacing default integer id with a string id and making a combo of (id and version) unique primary key. Here is what I've got so far.

class CreateCatalogs < ActiveRecord::Migration   def self.up     create_table :catalogs, :id => false do |t|       t.string :id, :limit => 20, :null => false       t.string :version, :default => '01'

      t.timestamps     end   end

  def self.down     drop_table :catalogs   end end

hi slave,you can do it use the connection method of migration use it like ActiveRecord::Base.connection_pool.checkout

alternatively if i leave default integer id as primary key I need to make sure combo of name and version are unique.

    create_table :catalogs do |t|       t.string :name       t.string :version, :default => '01'       t.timestamps     end

To ensure uniqueness, you can add an index

add_index :catalogs, [:name, :version], :unique => true

Andrew Timberlake http://ramblingsonrails.com http://www.linkedin.com/in/andrewtimberlake

"I have never let my schooling interfere with my education" - Mark Twain

on the same subject.. I need to ensure uniqness of name in a table. I tried setting collumn to unique (see below) but that did not work. I still can create records with same name field.

   create_table :properties do |t|       t.string :name, :unique => true       t.string :description

      t.timestamps     end