让Vagrant中的CentOS能够通过Rails使用PostgreSQL

在假设将Ruby on Rails开发的应用程序部署到Heroku上的情况下,预先对各种设置进行了PostgreSQL开发的讨论。

假设在Vagrant上的CentOS已经成功搭建了Rails环境。

appversionCentOS6.4Rails4.2.4PostgreSQL9.3.1

由于我想要先使其能够运行,所以我使用了一个与参考网站相匹配的版本。可能没有使用最新版本。

参考:
当在Ruby on Rails中使用PostgreSQL而不是SQLite时

安装PostgreSQL

根据所说,如果执行yum install postgresql命令,版本可能会过旧,所以请按照以下步骤进行安装。

首先,使用wget命令获取软件包。

wget http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm

安装已获取的软件包。

sudo rpm -ivh pgdg-centos93-9.3-1.noarch.rpm

安装 PostgreSQL 9.3版本。
可能不是最新的版本。

sudo yum install postgresql93
sudo yum install postgresql93-devel
sudo yum install postgresql93-server

确认版本。

psql --version

完成PostgreSQL的初始化后,启动它。

sudo service postgresql-9.3 initdb
sudo /etc/rc.d/init.d/postgresql-9.3 start

在RubyonRails中使用PostgreSQL而不是sqlite时,可以通过chkconfig的设置让PostgreSQL在服务器启动时始终启动。

因为PostgreSQL的默认用户(虽然不太确定这样称呼是否正确,但是可以直接使用的用户)是postgres,所以要使用这个用户登录PostgreSQL。

sudo -u postgres psql

首先设置postgres用户的密码。

\password

接下来需要输入密码。
然后,添加用户。

create user <test_user> with password '<test_pass>';

从PostgreSQL中出来。

\q

创建一个新的Rails应用程序

使用postgresql的选项可以指定要使用的数据库。

rails new <test_app> -d postgresql

听说如果没有安装名为pg的Ruby接口gem到PostgreSQL,会出现错误。
我之前进行了一些调整,已经安装好了,所以没有出错。但是如果出现错误的话,希望能够设法进行安装。在使用Ruby on Rails时,虽然默认是使用sqlite,但也有说明可以使用PostgreSQL。而且我自己也能够安装,所以应该能够在搜索引擎上找到一些相关信息。

编辑PostgreSQL的配置文件

编辑pg_hba.conf文件

sudo vi /var/lib/pgsql/9.3/data/pg_hba.conf

在底部追加以下内容。

local   all    all         md5

修改postgresql.conf

sudo vim /var/lib/pgsql/9.3/data/postgresql.conf
#listen_addresses = 'localhost'
↓
listen_addresses = '*'

重新启动PostgreSQL。

sudo /etc/rc.d/init.d/postgresql-9.3 restart

数据库.yml的配置

打开`database.yml`文件,这是在执行`rails new`命令后自动生成的文件。

cd <test_app>
vim config/database.yml

刚刚登录到PostgreSQL后,添加了一个新的用户名和密码。

username: <test_user>
password: <test_pass>

在这个情况下,当查看”database”这一项时,我认为它应该被设置为_development,所以记住这个名称。

创建DB

创建一个名为先前记住的_development的应用。
然后再次进入PostgreSQL。

psql -U postgres

执行以下的SQL语句。

create database <test_app>_development owner <test_user>;

当最后运行`rails s -b 0.0.0.0`来启动服务器,连接到在Vagrant中设置的地址时,应该会显示熟悉的Rails欢迎页面。

bannerAds