2014-02-04 4 views
0

Когда я запускаю свои миграции в рельсах, я возвращаю sql-ошибку, говоря, что такой столбец не существует: admin_users.password существует. Когда я ПОКАЗЫВАЮТ ПОЛЯ, ясно там. Я уверен, что это потому, что я что-то пропустил. В этом случае понимание того, что пошло не так, для меня гораздо важнее, чем устранение проблемы, поскольку я постоянно застреваю в своей базе данных в разбитом состоянии.Нет такой колонки: admin_users.password

First Migration: 

    class CreateUsers < ActiveRecord::Migration 

     def up 
     create_table :users do |t| 
      t.column "first_name", :string, :limit => 25 
      t.string "last_name", :limit => 50 
      t.string "email", :default => "", :null => false 
      t.string "password:", :limit => 40 
      # t.datetime "created_at" 
      # t.datetime "updated_at" 
      # The above two are created automatically by the below command 
      t.timestamps 
     end 
     end 

     def down 
     drop_table :users 
     end 

end 

Second Migration: 

class AlterUsers < ActiveRecord::Migration 


    def up 
rename_table("users", "admin_users") 
add_column("admin_users", "username", :string, :limit => 25, :after => "email") 
change_column("admin_users", "email", :string, :limit => 100) 
rename_column("admin_users", "password", "hashed_password") 
puts "*** Adding an index is next***" 
add_index("admin_users", "username") 
    end 

    def down 
remove_index("admin_users", "username") 
rename_column("admin_users", "hashed_password", "password") 
change_column("admin_users", "email", :default => "", :null => false) 
remove_column("admin_users", "username") 
rename_table("admin_users", "users") 
    end 
end 


=>== CreateUsers: migrated (0.0163s) =========================================== 

== AlterUsers: migrating ===================================================== 
-- rename_table("users", "admin_users") 
-> 0.0034s 
-- add_column("admin_users", "username", :string, {:limit=>25, :after=>"email"}) 
-> 0.0158s 
-- change_column("admin_users", "email", :string, {:limit=>100}) 
-> 0.2273s 
-- rename_column("admin_users", "password", "hashed_password") 
rake aborted! 
An error has occurred, all later migrations canceled: 

No such column: admin_users.password 

ответ

3

Это потому, что вы назвали вашу колонку password:с двоеточием в первой миграции.

Держу пари, что из-за опечатки в командной строке rails generate model. Это ужасно безвредно.

+0

Опечатка должна быть толстой кишки? – juanitofatas

+1

@juanitofatas уверен, спасибо –

Смежные вопросы