20

Я переустановил Postgres (9.2.4), и у меня возникли проблемы с его восстановлением с помощью Rails 3.2.11. Я сделал:Postgres on Rails FATAL: база данных не существует

brew install postgresql 
initdb /usr/local/var/postgres 
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start 

Так что теперь у меня есть

$ psql --version 
psql (PostgreSQL) 9.2.4 
$ which psql 
/usr/local/bin/psql 

Мой файл database.yml выглядит

development: 
    adapter: postgresql 
    encoding: unicode 
    database: myapp_development 
    pool: 5 
    username: Tyler 
    password: 
    host: localhost 
    port: 5432 

И когда я бегу rake db:create:allrake db:migrate тогда я получаю ошибку:

PG::Error: ERROR: relation "posts" does not exist 
LINE 5:    WHERE a.attrelid = '"posts"'::regclass 
            ^
:   SELECT a.attname, format_type(a.atttypid, a.atttypmod), 
       pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod 
      FROM pg_attribute a LEFT JOIN pg_attrdef d 
      ON a.attrelid = d.adrelid AND a.attnum = d.adnum 
     WHERE a.attrelid = '"posts"'::regclass 
      AND a.attnum > 0 AND NOT a.attisdropped 
     ORDER BY a.attnum 

Я попытался очистить все, что связано с прошлым db, миграциями и т. Д.

Я удалил schema.rb, seed.rb и все файлы в папке переноса и все, что я могу придумать. Но ошибка, относящаяся к «сообщениям», заставляет меня думать, что есть еще старая ссылка на мою предыдущую базу данных (которая имела таблицу с названием «posts»).

Кто-нибудь знает, как устранить эту ошибку при попытке полностью переустановить/обновить мою базу данных?

+0

Это похоже на то, что файлы миграции несовместимы. Вы уверены, что создаете 'posts', прежде чем ссылаться на него? – iltempo

+0

Я попытался поместить только первый файл миграции в папку миграции (который не ссылается на записи в любом месте), и я все еще получаю эту проблему. Я также попытался удалить ВСЕ файлы миграции, и я все еще получаю сообщение ... – tyler

+0

Использует ли 'rake db: drop: all' help? – iltempo

ответ

53

У меня была аналогичная проблема. Я проверил разные сайты и попробовал, что они предложили, но не работал. Тогда я попробовал то, что вы предложили. rake db:create:all и rake db:migrate это сработало для меня. Спасибо!

+0

работал как шарм !!Был расстроен им: D спасибо чувак, – userRandom

+2

это не работало для меня, пока я не добавлю bundle exec. 'bundle exec rake db: create: all'. Благодаря! – acrogenesis

3

Сначала вам необходимо создать базы данных. Run rake db: create: all

Также убедитесь, что ваш yml-файл настроен правильно для postgres.

2

db:create:all и db:migrate не работал для меня в первую очередь. я изменил свое имя базы данных из development.pg в developmentpg в myapp/config/database.yml файле:

database: db/developmentpg

, а затем rake db:create:all и rake db:migrate, он работал на меня.

Спасибо

0

Я попытался запустить грабли БД: создать: все, что не работает. Однако, работает bundle exec rake db: create: все работал для меня.

Надеюсь, это поможет!

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

  • Нет связанных вопросов^_^