Rails 4.0.1 на Heroku, не удается создать базу данных
Я не могу получить rake db: migrate для запуска на моем rails 4.0.1 app на Heroku.
Я предполагаю, что у меня нет postgres настроен должным образом... но чтение документов на heroku не очень помогло, и я не уверен, что делать. Я не слишком много знаю о хероку и Постгресе.
любая помощь или ресурсы были бы весьма признательны. Дайте мне знать, если есть что-нибудь еще, что я могу отправить.
(кроме того, я использую devise, если это имеет значение)
когда я запускаю heroku run rake db:migrate
Я понимаю:
Running `rake db:migrate` attached to terminal... up, run.5077
PG::UndefinedTable: ERROR: relation "users" does not exist
LINE 5: WHERE a.attrelid = '"users"'::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 = '"users"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
rake aborted!
PG::UndefinedTable: ERROR: relation "users" does not exist
LINE 5: WHERE a.attrelid = '"users"'::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 = '"users"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
когда я запускаю heroku run rake db:setup
Я понимаю:
FATAL: permission denied for database "postgres"
DETAIL: User does not have CONNECT privilege.
... stack trace ...
Couldn't create database for {"adapter"=>"postgresql", "username"=>"aqofwrwjifcqkx", "password"=>"7yqDAx1L_4HFhw7WV3PH7ZrKyM", "port"=>5432, "database"=>"d5dvi0pjk7dgr7", "host"=>"ec2-23-21-94-137.compute-1.amazonaws.com"}
затем следует тот же PG::UndefinedTable отношение ошибки "пользователи" не существует
5 ответов
Я бы сначала попробовать
heroku restart
heroku rake db:migrate
Если это не сработает, попробуйте.
heroku pg:reset DATABASE_URL #Literally type in heroku pg:reset DATABASE_URL
heroku rake db:migrate
Я должен был прочитать трассировку стека более внимательно. Моя фабрика.rb создавал пользовательские объекты в качестве атрибутов для других фабрик. Обернув их в блок, зафиксировал его:
ответ Джейсона может решить вашу проблему, но я хотел бы подробнее рассказать, почему вы получили ошибку и как ее исправить.
вы не можете запустить "rake db: setup" на Heroku, потому что он попытается создать базу данных, а ваша база данных уже существует на Heroku
в вашей базе данных.yml, вы должны прочитать url базы данных из переменной среды, например: производство:
url: <%= ENV["DATABASE_URL"] %>
Я думаю, что вы получаете 2-ю ошибку, потому что у вас есть некоторая ошибка версии в ваших миграциях, запуск их с самого начала должен исправить это :
rake db:migrate VERSION=0
чтобы удалить и повторно создать базу данных
- войдите в heroku в терминале
- cd в ваше приложение
- выполнить
heroku pg: сброс базы данных