2013-12-22 3 views
2

Мое приложение использует схемы 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 работать с моими схемами?

+0

Одним словом, вам необходимо установить путь search_path. Не знаю, как это делается в Rails, но простой запрос после подключения должен сделать трюк. –

+0

Ха-ха, да, конечно, но я спрашиваю, возможно ли это сделать с простой задачей rake db: migrate. Я не знаю, как установить «search_path» в Rails для переноса, кроме как в 'database.yml'. – josh

+2

Вы можете установить путь поиска, выполнив, например. 'set search_path для производства, public'. В запросе БД перед запуском последующих запросов. И, возможно, это ошибка в рельсах, если настройка пути поиска в файле конфигурации работает, но не при выполнении миграций. –

ответ

0

Поскольку у вас нет схемы, называемой разработкой в ​​вашей базе данных.

+0

Нет, это не проблема, я уже создал схемы в базе данных. Я думаю, что это проблема с Rails или, по крайней мере, была проблемой в то время, когда она не добавила префикс в таблицу при создании начальных таблиц. Он будет работать после того, как я добавлю 'set search_path в production, public'. – josh

Смежные вопросы