У меня была рабочая установка с использованием Rails 3.1 и Postgres 9.0, и я только что обновил Rails до 3.2.1 и Postgres 9.1.2.
Обновление postgres означало перенос данных, так как хранилища данных двух версий несовместимы.Я не особо заботился о переносе данных в мои локальные базы данных, так как они все равно используются в целях разработки.Поэтому я пытаюсь воссоздать свои базы данных, используя миграцию Rails (или w / schema).Однако независимо от того, что я пытаюсь, я не могу запустить миграцию.
Используя
rake db:migrate
или
rake db:reset
Запуск этого с моим Postgres 9.1.2Программа установки дает мне:
spif: > rake db:migrate
rake aborted!
PG::Error: ERROR: relation "users" does not exist
LINE 4: WHERE a.attrelid = '"users"'::regclass
^
: SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"users"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)
Сначала я подумал, что гем pg не поддерживает Rails 3.2.1, но поэтому попробовал и с sqlite3, но это дает мне тех же пользователей, которых не нашел:
spif: > rake db:reset
rake aborted!
Could not find table 'users'
Похоже, что Rails ожидает где-то таблицу пользователей.
Понятия не имею, как узнать, какой код на самом деле вызывает это.Когда я запускаю команды миграции с --trace, это показывает, что это делает внутреннее устройство ActiveRecord.Может ли это быть ошибкой в ActiveRecord 3.2.1 (как мне узнать об этом?).
Я могу подключиться к pg db'у нормально, используя psql и мои настройки пользователя в конфигурации/database.yml.Ожидает ли rails некоторых таблиц postgres, которые он может запрашивать о пользователях?
Я полностью удалил каталог db / migrate и db / schema.rb, чтобы убедиться, что там нет некоторыхстранная внутренняя зависимость, но тоже безрезультатно.
Я уверен, что мне не хватает какой-то простой концепции - я не часто пытался сбросить свою базу данных с нуля, поэтому я надеюсь, что тамЭто простое объяснение.
Спасибо, помощь очень ценится.