如何在适用于localhost的Rails项目中从SQLite数据库更改为PostgreSQL数据库?

时间:2019-01-03 06:29:55

标签: ruby-on-rails ruby postgresql sqlite

在database.yml

development:
  adapter: postgresql
  encoding: unicode
  database: demo_test_development
  pool: 5
  username: adarsh
  password: 
  timeout: 5000
  host: localhost
  port: 5432

test:
  adapter: postgresql
  encoding: unicode
  database: demo_test_test
  pool: 5
  username: adarsh
  password: 
  timeout: 5000
  host: localhost
  port: 5432

在gem文件中

group :development do

    gem 'pg'
    gem 'taps'

end

然后我做

1)捆绑安装(正在运行)

2)rake db:setup,db:create,db:migrate(但不起作用)

得到错误:无法连接到服务器:连接被拒绝服务器是否在主机“ localhost”(127.0.0.1)上运行并在端口5432上接受TCP / IP连接?                       无法创建“ demo_test_development”数据库。请检查您的配置。

2 个答案:

答案 0 :(得分:1)

您需要将postgresql软件包安装到系统中,您可以参考this链接以获取有关安装postgres的说明,只需执行以下命令即可

sudo apt-get install postgresql postgresql-contrib
  

这会将postgres安装到您的系统中

然后,您需要创建一个用户,并使用rails应用程序的database.yml文件中提到的详细信息

您可以将pgadmin用于数据库浏览器,也可以参考this问题以获取其他工具

要安装pgadmin3,请运行以下命令

 sudo apt-get install pgadmin3

然后使用您正在使用的主机端口等详细信息进行配置(请参阅database.yml)

答案 1 :(得分:0)

您正在gem文件的开发组中使用gem'pg'。

group :development do

    gem 'pg'
    gem 'taps'

end

通过将此行移出development组来将其包含在每个环境中。