4

仕様を実行しようとしている Rails 3.2.1 プロジェクトがあります。

実行時: レーキ

レーキが中止されました! PG::エラー: エラー: パラメータ "search_path" の無効な値: "example" 詳細: スキーマ "example" が存在しません: SET search_path TO example

私が理解できることから、rake db:test:prepare はテスト データベースを削除し、schema.rb から再作成しようとします。問題は、database.yml に次の行があることです。

schema_search_path: 例

そのため、再接続しようとすると、上記のエラーで失敗します。

私の質問は、rake db:test:prepare を取得して schema_path もセットアップするにはどうすればよいかということだと思います。

4

2 に答える 2

0

1 つの解決策は、スキーマを作成する db:create タスクにコードを少し追加することです。これを rake タスクに入れます。たとえば、'APP_ROOT/lib/tasks/db_create_schema.rake' です。

namespace :db do
  task :create do
    config = Rails.configuration.database_configuration[Rails.env].merge!({'schema_search_path' => 'public'})
    ActiveRecord::Base.establish_connection(config)
    ActiveRecord::Base.connection.execute("CREATE SCHEMA schema_name")
  end
end

https://gist.github.com/4280172

于 2012-12-13T22:03:16.640 に答える
-1

schema_search_pathconfig/database.yml に設定する必要があります

例えば

development:
  adapter: postgresql
  encoding: unicode
  database: test
  pool: 5
  username: user
  password: password
  #host: localhost
  #port: 5432
  # Schema search path. The server defaults to $user,public
  schema_search_path: example
于 2012-09-18T03:21:33.210 に答える