昨天,我正在尝试设置一个名为“Elasticsearch”的全文搜索引擎,我按照Railscasts.com(http://railscasts.com/episodes/306-elasticsearch-part-1?view=comments&_=1345840910957)上的说明将这个搜索引擎整合到我的网站上。
我跟着任务到了调用'rake db:setup'并且“重新创建”我的整个数据库(不想要那个),现在没有任何作用。看起来Rails从schema.rb重新创建了db,但它只创建了表和索引,而不是与它相关联的列。
http://img14.imageshack.us/img14/1535/bildschirmfoto20120825u.png
我在_development db。
正在运行rake db:setup
:
doanything_development already exists
doanything_test already exists
-- create_table("admin_notes", {:force=>true})
NOTICE: CREATE TABLE will create implicit sequence "admin_notes_id_seq" for serial column "admin_notes.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index "admin_notes_pkey" for table "admin_notes"
-> 0.1088s
-- add_index("admin_notes", ["admin_user_type", "admin_user_id"], {:name=>"index_admin_notes_on_admin_user_type_and_admin_user_id"})
-> 0.0064s
-- add_index("admin_notes", ["resource_type", "resource_id"], {:name=>"index_admin_notes_on_resource_type_and_resource_id"})
-> 0.0049s ...<br /><br />
Schema.rb looks like: " create_table "users", :force => true do |t|<br />
t.string "name"
t.string "email"
t.datetime "created_at",:null => false
t.datetime "updated_at",:null => false ... end <br />
它在我的pgdb表“Sequences”列上创建,如"users_id_seq"
,我之前没有。运行“rake db:migrate
”不会加载任何现有的迁移文件:e.x。
class AddSaltToUsers < ActiveRecord::Migration <br/>
def change <br/>
add_column :users, :salt, :string <br/>
end
end
版本是:ruby 1.9.3p194,Rails 3.2.6和PostgreSQL 9.1.4
如果有人能够弄清楚刚刚发生了什么,以及我如何让我的网站再次运作。
答案 0 :(得分:1)
如果您运行rake db:migrate一次。 AddSaltToUsers
的迁移可能已经运行。如果是这样,有几种方法可以解决这个问题。
创建新的迁移文件,或手动编辑schema_migrations
,方法是从该表中删除版本号,然后重新运行rake db:migrate
。我强烈建议你不要这样做,因为如果你不知道自己在做什么,它会把你的迁移搞得一团糟。
希望有所帮助。