Ответ 1
В Spring есть ошибка с Rails 4.1, которая заставляет генераторы зависать.
Попробуйте запустить spring stop
и снова запустите генератор.
При использовании этой команды:
rails generate model Event name:string
Ничего не происходит, и мне нужно CTRL + c.
Используемые версии:
Я проверил, что Postgres работает, и я могу подключиться к нему, запустив psql easyEventTracker_development
. Я настраиваю проект рельсов, запустив rails new easyEventTracker -d postgresql
При запуске rake db:create
появляется следующее сообщение:
easyEventTracker_development уже существует
easyEventTracker_test уже существует
Содержимое файла database.yml:
default: &default
adapter: postgresql
encoding: unicode
pool: 5
development:
<<: *default
database: easyEventTracker_development
test:
<<: *default
database: easyEventTracker_test
production:
<<: *default
database: easyEventTracker_production
username: easyEventTracker
password: <%= ENV['EASYEVENTTRACKER_DATABASE_PASSWORD'] %>
Если я настрою проект с помощью Rails с SQLite, все будет хорошо.
В Spring есть ошибка с Rails 4.1, которая заставляет генераторы зависать.
Попробуйте запустить spring stop
и снова запустите генератор.
Похоже, вы не предоставляете username
и password
для своих баз данных разработки и тестирования. Вы должны проверить, что вы можете подключиться к своей базе данных, используя
rails dbconsole
который предоставит SQL-запрос, специфичный для базы данных, который использует учетные данные, которые вы предоставляете в database.yml
. Хотя sqlite3
- это программа на основе файлов, которая не требует учетных данных для входа в систему, вам понадобятся они даже в режиме разработки, если вы используете базу данных, которая может использовать другую схему.
Если вы настроили схему разработки для работы без пароля, вам все равно нужно указать имя схемы как имя пользователя, как в
username: easyEventTracker_development
То же самое произошло со мной, и я не использовал Spring, поэтому решение не сработало.
Я просто покинул консоль, снова открыл ее, выполнил ту же команду, и она сработала.