Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby On Rails > помогите с миграцией (rake db:migration)


Автор: maep 28.8.2008, 06:51
Господа, тут решил продолжить изучение рельс, и рельсы ведут на путь миграций.
Соответственно задача: написать классы для миграции и поднять из них базу.
Делаю три таблички, сгенерив шаблоны командами 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_*, получаю ошибку.

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

Спасибо...





Автор: source777 28.8.2008, 10:28
Цитата(maep @  28.8.2008,  06:51 Найти цитируемый пост)
Всего три файла: 001_users.rb, 002_visits.rb, 003_links.rb.
Названия такие дал им  generate.

не ври, generator лишь добавляет номер и расширение, а названия дал им именно ты, и прямо скажем они неудачные...

По поводу вопроса: где вывод команд 'rake db:migrate' и 'rake db:migrate VERSION=0' ?

Автор: maep 28.8.2008, 11:12
Странные глюки с форумом... теперь по теме:
Во-первых, что неудачного в названии users? генератор к нему прибавил 001_, именно это я и имел ввиду.

Кстати, заявления типа "не ври" - считаю довольно оскорбительными, особенно если они безосновательны.

Вот вывод команд:

 'rake db:migrate'  :

C:\...Rails-2.0-win\rails_apps\tuttest>rake db:migrate --trace
(in C:/install/InstantRails-2.0-win/rails_apps/tuttest)
** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Execute db:migrate
== 3 Links: migrating =========================================================
-- create_table(:links)
   -> 0.1100s
== 3 Links: migrated (0.1100s) ================================================

** Invoke db:schema:dump (first_time)
** Invoke environment
** Execute db:schema:dump



 'rake db:migrate VERSION=0' 

C:\...Rails-2.0-win\rails_apps\tuttest>rake db:migrate VERSION=0
(in C:/install/InstantRails-2.0-win/rails_apps/tuttest)
== 2 Visits: reverting ==============================================
-- drop_table(:visits)
rake aborted!
Mysql::Error: #42S02Unknown table 'visits': DROP TABLE `visits`

(See full trace by running task with --trace)

C:\...Rails-2.0-win\rails_apps\tuttest>

Автор: source777 28.8.2008, 12:15
Цитата(maep @  28.8.2008,  11:12 Найти цитируемый пост)
генератор к нему прибавил 001_, именно это я и имел ввиду.
Мало ли что ты имел в виду, я твои мысли не читаю, а вот то что ты написал было враньём, и пока ты это не признаешь, не вижу смысла продолжать тебе помогать...

Цитата(maep @  28.8.2008,  11:12 Найти цитируемый пост)
Во-первых, что неудачного в названии users?
Конечно, очень удачное название, давай теперь и модель с контроллером так же назовём... есть определённые соглашения об именовании в Rails и не следовать им без веского на то основания глупо!

Автор: maep 29.8.2008, 04:52
source777,
у тебя ко мне личная неприязнь, или ты просто дурак, который хамит незнакомым людям просто так? 
У психиатра давно был, крутой рельсовик?

Автор: source777 29.8.2008, 10:23
2maep Хамишь тут только ты, видимо тебе правда глаза колет...

P.S. Учись признавать свои ошибки, иначе тебе вообще никто помогать не будет!

Автор: maep 29.8.2008, 11:44
source777 ты врешь. Хамил тут ты. А  про ошибки: название файлам дал сцуко генератор, это факт. Он их сгенерил и назвал, исходя из параметра, который я ему отправил, и своих соображений. Так что это ТВОЯ ошибка, сказать, что я ВРУ. Кстати, проблему мне сразу помогли решить ребята, которые разбираются в теме, а не к словам цепляются. Так что вопрос более не актуален.

Актуален другой вопрос, а именно "почему юзер source777, вместо помощи или молчания, тут же начинает орать автору вопроса что он ВРЕТ, будто бы мы в милиции  и я клевещу на оного source777, будто бы он украл у меня замшевую куртку импортную. Две." 
Может, source777 не догадывается, что, сказав незнакомому человеку, который не сделал ему лично НИЧЕГО плохого, а также никому из своих знакомых, что он ВРЕТ - грубая ошибка?


З.Ы.
Пока не признаешься что это вранье - не вижу смысла тебе помогать.
А помощь тебе нужна, ты с людями общаться не умеешь. И не воспитан.

З.Ы.Ы.

Тебя не Митей зовут случайно?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)