0


昨日、「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
Im は _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テーブルに「シーケンス」のような列を作成しましたが"users_id_seq"、これは以前にはありませんでした。' ' を実行rake db:migrateしても、既存の移行ファイルは読み込まれません: ex

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

誰かが何が起こったのか、どうすれば私のサイトを再び機能させることができるかを理解できれば.

4

1 に答える 1

1

rake db:migrate を 1 回実行した場合。の移行AddSaltToUsersが既に実行されている可能性があります。もしそうなら、これを克服する方法はいくつかあります。

schema_migrations新しい移行ファイルを作成するか、そのテーブルからバージョン番号を削除してから を再実行して手動で編集しますrake db:migrate。自分が何をしているのかわからないと、移行がすべて台無しになる可能性があるため、後者を行うことは強くお勧めしません。

それが役立つことを願っています。

于 2012-08-25T09:09:42.010 に答える