0
我開發使用PostgreSQL數據庫的RoR應用程序,在此基礎上database.yml中的定義:在開發和測試之間採集不一致的行爲?
# PostGre databases
default: &default
host : localhost
adapter: postgresql
encoding: unicode
pool: 5
username: keyman
password: keymanApp
schema_search_path: "keyman"
development:
<<: *default
database: keyman_dev
test:
<<: *default
database: keyman_test
我創建了一個小耙套路,所以我可以很容易地刪除和創建我的PostgreSQL數據庫,其中包括我的工作模式搭配:
namespace :db do
desc 'Create database schemas before going for the first migration'
task init: ['db:drop','db:create'] do
ActiveRecord::Base.connection.execute("CREATE SCHEMA keyman AUTHORIZATION keyman")
puts 'Database initialised'
end
end
當我運行耙分貝:初始化,執行它無論在開發和測試環境:
$ rake db:init
Dropped database 'keyman_dev'
Dropped database 'keyman_test'
Created database 'keyman_dev'
Created database 'keyman_test'
Database initialised
但結果不一樣:模式'keyman'是爲keyman_dev數據庫創建的,但不是爲keyman_test數據庫創建的。
我需要明確運行rake db:init RAILS_ENV = test以獲取在測試數據庫上創建的模式。
這聽起來很奇怪!你有解釋嗎? 感謝
謝謝你這個非常明確的解釋,我將在未來的耙子任務中關注這一點。 – user1185081