当尝试使用Rails和PostgreSQL生成模型时,该命令会挂起而不会出错

时间:2014-05-20 00:33:53

标签: ruby-on-rails ruby macos postgresql ruby-on-rails-4

使用此命令时:

rails generate model Event name:string

什么都没发生,我必须按CTRL + c。

我使用的版本是:

  • Ruby 2.1.1p76
  • Rails 4.1.0
  • PostgreSQL 9.3.4
  • Mac OS X 10.9.3

我已经验证Postgres正在运行,我可以通过运行psql easyEventTracker_development来连接它。我通过运行rails new easyEventTracker -d postgresql

来设置我的rails项目

运行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设置项目,一切正常。

3 个答案:

答案 0 :(得分:64)

Spring with Rails 4.1中存在一个错误,导致生成器挂起。

尝试运行spring stop并再次运行生成器。

答案 1 :(得分:0)

您似乎没有为开发和测试数据库提供usernamepassword。您应该验证是否可以使用

连接到数据库
rails dbconsole

将提供使用您在database.yml中提供的凭据的特定于数据库的SQL提示。虽然sqlite3是一个基于文件的程序,它不需要登录凭据,但如果您使用能够使用不同模式的数据库,即使是开发模式也需要它们。

如果您将开发架构设置为在没有密码的情况下工作,则仍需要提供架构名称作为用户名,如

username: easyEventTracker_development

答案 2 :(得分:0)

同样的事情发生在我身上,我没有使用Spring,所以解决方案没有用。

我刚退出控制台,再次打开控制台,运行相同的命令并且工作正常。