PGError: ERROR: отношение "schema_migrations" не существует, когда я герою db: push - PullRequest
1 голос
/ 13 февраля 2012

В моей локальной системе есть база данных PostGresql.Я использовал это во время разработки, и я пытаюсь проверить это на системе Heroku.

Примечание. Я использую PostGresql, чтобы использовать схемы.

Система отлично работает на моей локальной системе.

Я перехожу на страницу Heroku о том, как перенести мою БД на сервер.http://devcenter.heroku.com/articles/taps

> heroku db:push

Примерно через 5 минут я получаю

"PGError: ERROR:  relation "schema_migrations" does not exist"

Что мне интересно, это в два раза ... На небольшом уровне мне интересно, почему это происходит.Моя база данных восстанавливается с нуля?На главном уровне мне интересно, как мне обойти это.

Краткое описание: Как мне обойти отсутствующий стол на пушке db: push?


Для решения проблем, выраженных в данном ответе.

W:\RUBY\EDM>heroku run rake db:create
Running rake db:create attached to terminal... up, run.1
kzcgkswrss already exists

W:\RUBY\EDM>heroku run rake db:migrate
Running rake db:migrate attached to terminal... up, run.1

W:\RUBY\EDM>heroku db:push
Loaded Taps v0.3.23
Auto-detected local database: postgres://postgres:password@127.0.0.1/EDM2_develo
pment?encoding=utf8
Warning: Data in the app 'xxxx' will be overwritten and will not be r
ecoverable.

 !    WARNING: Potentially Destructive Action
 !     This command will affect the app: xxxx
 !    To proceed, type "xxxx" or re-run this command with --confirm c
xxxx

> xxxxx

Sending schema
Schema:        100% |==========================================| Time: 00:01:56
Sending indexes
schema_migrat: 100% |==========================================| Time: 00:00:01
....
users:         100% |==========================================| Time: 00:00:02
Sending data
31 tables, 5 records
schema_migrat:   0% |                                          | ETA:  --:--:--
Saving session to push_201202150351.dat..
!!! Caught Server Exception
HTTP CODE: 500
Taps Server Error: PGError: ERROR:  relation "schema_migrations" does not exist

edit 2

Кажется, эта ошибка связана со второй схемой, существующей в postGresql. Похоже, она выдвинула все пустые таблицы в общедоступных, нокак только он попытался выдвинуть вторую схему, он потерпел неудачу ..

Ответы [ 2 ]

1 голос
/ 13 февраля 2012

Попробуйте

 heroku rake db:push

Или, возможно, если это не сработает, сделайте

 heroku rake db:migrate

сначала, а затем попробуйте второй.

Вы получаете недостающую таблицу, потому что вы еще не создали таблицу в Heroku. Вам нужно создать БД и запустить миграцию. Да, это создаст новую БД.

UPDATE:

По словам Даниэля Вандерслёйса (с по этой ссылке ):

Когда вы используете рельсовые миграции, автоматически создается таблица с именем schema_migrations, которая отслеживает, какие миграции были применены, путем сохранения номера версии каждой миграции (это число, которое предшествует имени миграции в имени файла, т.е. db / migrate / _20090617111204__migration.rb). Когда вы запускаете rake db: migrate для переноса вверх, будут выполняться только те миграции, которые не были выполнены ранее (т.е. их версия не содержится в таблице) (по этой причине изменение уже выполненной миграции не будет иметь никакого эффекта при запуске db: мигрировать). При переходе вниз все версии, найденные в schema_migrations, которые больше, чем версия, к которой вы возвращаетесь, будут отменены.

0 голосов
/ 27 июля 2016

ты управлял своими миграциями на самой героку?

$ heroku run rake db:migrate 

Если нет, то, вероятно, это все

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...