Ruby On Rails : помогите с миграцией (rake db:migration)
От: Astellar  
Дата: 29.08.08 02:01
Оценка:
Господа, тут решил продолжить изучение рельс, и рельсы ведут на путь миграций.
Соответственно задача: написать классы для миграции и поднять из них базу.
Делаю три таблички, сгенерив шаблоны командами generate migration <users>

Всего три файла: 001_users.rb, 002_visits.rb, 003_links.rb.
Названия такие дал им generate.

Вот такие файлы:

class Users < ActiveRecord::Migration
  def self.up
    create table users do |t|
      t.string :name, :limit => 250
      t.string :password, :limit => 100
      t.timestamps    
    end
  end
  def self.down
   drop_table :users
  end
end



class Visits < ActiveRecord::Migration
  def self.up
    create_table :visits do |t|
    t.timestamp :stamp
    t.references :user
    end    
  end
  def self.down
    drop_table :visits
  end
end



class Links < ActiveRecord::Migration
  def self.up
    create_table :links do |t|
      t.string  :url, :limit => 250
      t.timestamps
      t.references :user
    end
  end
  def self.down
   drop_table :links
  end
end


database.yml:

development:
  adapter: mysql
  database: taut
  host: localhost    
  username: train2
  password: zaq
test:
  adapter: mysql
  database: taut_test
  host: localhost    
  username: root
production:
  adapter: mysql
  database: taut_prod
  host: localhost    
  username: root



запускаю rake db:migrate в каталоге проекта.
Что получается: на базе taut создается только табличка links. Другие две базы остаются пустыми.

генерится файл schema.rb следующего содержания:
ActiveRecord::Schema.define(:version => 3) do
create_table "links", :force => true do |t|
t.string "url", :limit => 250
t.datetime "created_at"
t.datetime "updated_at"
end
end


Я подозреваю, что проблема с версиями и префиксом имен файлов. Переименовал все в 003_*, получаю ошибку.

Скажите пожалуйста, где я неправ?

Спасибо...
Я весьма доверчив, когда речь идет о моих словах. Я верю всему, что
говорю, хотя и знаю, что я лжец.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.