Мое приложение использует схемы 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. Я не знаю, как установить «search_path» в Rails для переноса, кроме как в 'database.yml'. – josh
Вы можете установить путь поиска, выполнив, например. 'set search_path для производства, public'. В запросе БД перед запуском последующих запросов. И, возможно, это ошибка в рельсах, если настройка пути поиска в файле конфигурации работает, но не при выполнении миграций. –