【问题标题】:How to connect to Postgresql from Ruby On Rails App如何从 Ruby On Rails 应用程序连接到 Postgresql
【发布时间】:2014-02-12 01:26:47
【问题描述】:

我是 Ruby on rails 的新手,我正在使用带有窗口 7 的 ruby​​ v 1.9.3 和 rails 3.2.12

我想在我的应用程序中连接 PostgreSQL 数据库。

这是我的数据库连接

development:  
  adapter: postgresql
  encoding: unicode
  database: mmagap_development
  pool: 5
  timeout: 5000
  host: 127.0.0.1
  username: postgres
  password: root

test:
  adapter: postgresql
  encoding: unicode
  database: mmagap_test
  pool: 5
  username: postgres
  password: root

production:
  adapter: postgresql
  host: 127.0.0.1
  encoding: unicode
  database: mmagap_production
  pool: 5
  username: postgres
  password: root

这个连接每次都报错

D:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-3.2.12/lib/active_record/connection_adapters/postgresql_adapter.rb:1208:in
`initialize': received invalid response to SSL negotiation: - (PG::ConnectionBad)

请帮助如何在我的 RoR 应用中创建 PostgreSQL 数据库连接。

【问题讨论】:

  • 什么环境给你这个错误?他们都给你这个错误吗?
  • 您检查数据库是否已创建?

标签: ruby-on-rails ruby ruby-on-rails-3 postgresql


【解决方案1】:

首先你应该安装 PostgreSQL 和 PgAdmin

安装这个东西后,你必须在你的项目 config/database.yml 文件中添加一些代码(将 PostgreSQL 连接到你的 rails 项目)(在添加 PostgreSQL 代码之前,你必须从 config/ 中删除所有 Sqlite3 代码database.yml 文件)。

development:
  adapter: postgresql
  encoding: unicode
  database: database_name
  pool: 5
  host: localhost
  username: your_PostgreSQL_username
  password: your_PostgreSQL_password

test:
  adapter: postgresql
  encoding: unicode
  database: database_name
  pool: 5
  username: your_PostgreSQL_username
  password: your_PostgreSQL_password

staging:
  url: <%= ENV['DATABASE_URL'] %>

production:
 url: <%= ENV['DATABASE_URL'] %>

postgres 是 PostgreSQL 数据库中的默认用户名和密码\

添加这张代码后,您必须在 Gemfile 的 rails 项目根目录中添加一行代码

gem ‘pg’

并且您必须在添加 gem 'pg' 之前从 Gemfile ( gem 'sqlite3', '~> 1.4' ) 中删除 sqlite3 代码

【讨论】:

    【解决方案2】:

    database.yml 的开发配置中删除了host,它对我有用。

    development:  
          adapter: postgresql
          database: tes
          pool: 5
          timeout: 5000
          username: postgres
          password: root
    

    【讨论】:

      【解决方案3】:

      首先安装pg gem

          gem install pg
      

      您的应用程序 database.yml 文件应该是这样的

      development:   
          adapter: postgresql  
          encoding: unicode  
          database: myapp_development  
          pool: 5  
          username: myapp  
          password: password1  
      
      test:  
        adapter: postgresql  
        encoding: unicode  
        database: myapp_test  
        pool: 5  
        username: myapp  
        password: password1
      

      现在运行

      rake db:setup    
      rake db:migrate
      

      在这个运行之后

      rails s  
      

      【讨论】:

        【解决方案4】:

        使用此链接验证 Postgresql 是否安装成功。

        DigitalOceanCommunityArticle Click Here

        问UbuntuLink Click Here

        【讨论】:

          【解决方案5】:

          您可以将host: 127.0.0.1 更改为host: localhost。它应该可以解决问题。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-09-20
            • 2012-06-10
            • 2018-12-01
            • 1970-01-01
            • 2016-11-04
            • 2018-04-26
            相关资源
            最近更新 更多