Подтвердить что ты не робот

Консоль Rails не может подключаться к базе данных

В последние дни я обновляю свою ОС X до Maverics. Сегодня, когда я пытаюсь создать новый проект следующим образом:

rails new abc

было много проблем, но я устанавливаю xcode, и теперь он работает. Прямо сейчас я открываю консоль рельсов следующим образом:

rails console

а затем все, что я пишу, я вижу только:

Loading development environment (Rails 4.0.1)
1.9.3p448 :001 > Link
=> Link(no database connection)

Что не так? Mysql работает, база данных существует. Когда я делаю rake db: migrate все работает нормально.

4b9b3361

Ответ 1

Консоль, вероятно, имеет, имеет соединение с базой данных, но сообщает, что это не так.

Чтобы узнать, действительно ли это, сделайте запрос в консоли.

Link.count

Это зафиксировало ложное положительное предупреждение для меня и коллеги.

Ответ 2

В прошлом, ссылаясь на модель ActiveRecord сразу после загрузки консоли, возвращалась информация о столбце. Rails теперь возвращает эту информацию только в том случае, если она явно принудительно подключалась к базе данных с помощью таких методов, как connection, first, all, count и т.д.

Вы можете восстановить предыдущее поведение, добавив его в свой config/application.rb

console do
  ActiveRecord::Base.connection
end

Ответ 3

В соответствии с вопросами № 12804 на rails/rails.

Сообщение просто сообщает вам, что AR еще не подключился к базе данных и, следовательно, не знает информацию о столбце. Я думаю, что он не хотел подключаться к базе данных, если нам не нужны данные.

Теперь вы можете использовать Model.connection для установления соединения.

Ответ 4

Попробуйте использовать reload! на консоли и убедитесь, что у вас есть записи в указанной модели, если не создавать записи для отношений и т.д.

У меня была такая же проблема на ubuntu. Я использовал reload! в консоли rails и добавил записи в базу данных.

Ответ 5

У меня такая же проблема с Rails 4.0.1. Это происходит на сервере Linux, на котором я развертываюсь, а также на моей машине разработки Mavericks.

Сервер работает, спецификации работают, но консоль не имеет подключения к базе данных.

Возврат к Rails 4.0.0 устраняет проблему с помощью консоли.

Я не нашел другого упоминания об этой проблеме. Возможно, проблема с изменениями для 4.0.1 и адаптера Postgres, может быть? (Вы используете Postgres?)