我的應用程序使用Postgresql的模式而不是多個數據庫,因此每個環境都有自己的模式。也就是說,我正在使用一個production
,development
和test
架構的數據庫。我從這個數據庫中刪除了public
模式。模式遷移的非公有模式
我已經建立了我第一次遷移,但是當我運行rake db:migrate
我得到一個錯誤,說明
PG::InvalidSchemaName: ERROR: no schema has been selected to create in: CREATE TABLE "schema_migrations" ("version" character varying(255) NOT NULL)
我已經包含在schema_search_path
我database.yml
:
development:
adapter: postgresql
username:
password:
database:
host: localhost
port: 5433
schema_search_path: 'development'
由於我的應用程序ISN將不會使用任何可以讓它成爲多租戶的功能,我並不想使用像Apartment這樣的大型創業板。有沒有辦法讓rake db:migrate
命令與我的模式一起工作?
總而言之,您需要相應地設置search_path。不知道它是如何在Rails中完成的,但連接後的一個簡單查詢應該可以做到。 –
哈哈,當然是,但我問是否可以使用普通的'rake db:migrate'任務。我不知道如何在Rails中設置'search_path'來進行非'database.yml'中的遷移。 – josh
您可以設置搜索路徑,例如運行'將search_path設置爲生產,公共'。在運行後續查詢之前進行數據庫查詢。而且,如果在配置文件中設置搜索路徑,但無法在運行遷移時運行,則可能是rails中的一個錯誤。 –