zoukankan      html  css  js  c++  java
  • 使用postgresql来作为rails的数据库

    rails默认自带了个零配置的sqlite、这个做为开发还OK、不过不能并发写入的特性不适合作为生产使用、从头开始说吧

    P.S.:以下基于ubuntu server部署postgresql

    =============安装postgresql并启动===============

    首先在ubuntu下安装postgresql吧

    sudo apt-get install postgresql

    然后启动postgresql服务器

    sudo /etc/init.d/postgresql-8.4 start

    10.04下安装的postgresql默认是8.4,若是10.10,则不用加版本号

    如果想停止将start改成stop就可以了


    =============配置postgresql===============

    postgresql默认只有一个用户、就是postgres、所以只能切换成这个用户登录

    sudo su postgres -c psql template1

    然后更改postgres的密码

    ALTER USER postgres WITH PASSWORD 'newpassword';

    再设置postgres的系统密码

    sudo passwd postgres

    然后创建用户数据库、postgresql会默认为每个用户自建一个用户数据库、

    createdb    

    createdb是创建数据库的命令、后面可以加上数据库的名称、如果不加上任何参数、那么就是默认与当前用户名同名的数据库名称、

    创建完数据库后就用psql daname来进入postgresql控制台来进行各种操作、这部分就不再复述了、可以参看相关资料:http://www.cnblogs.com/klobohyz/archive/2012/01/04/2311834.html


    ================配置rails项目==========================

    首先当然是产生一个rails项目、或者迩已经存在rails项目现在想更改成postgresql都可以、首先修改项目文件中的Gemfile、然后添加这么一行

    gem 'pg'    

    再执行一次bundle install

    执行完毕后就安装好了postgresql的ruby组件了、现在开始配置一下rails项目中的config/database.yaml

     1 development:
    2 adapter: postgresql
    3 encoding: unicode
    4 database: herkurails_development
    5 username: root
    6 password: 123qwe
    7 pool: 5
    8 timeout: 5000
    9
    10 # Warning: The database defined as "test" will be erased and
    11 # re-generated from your development database when you run "rake".
    12 # Do not set this db to the same as development or production.
    13
    14 test:
    15 adapter: postgresql
    16 encoding: unicode
    17 database: herkurails_test
    18 username: root
    19 password: 123qwe
    20 pool: 5
    21 timeout: 5000
    22
    23
    24 production:
    25 adapter: postgresql
    26 encoding: unicode
    27 database: herkurails_production
    28 username: root
    29 pool: 5
    30 password: root
    31 timeout: 5000

    当然了、其中的password和username要更改成迩的postgresql用户名、上面的database参数就是postgresql的数据库名称、必须先要去postgresql那里去新建这些数据库先、不要指望rake会自动帮迩建立、使用配置文件中指定的用户依次使用createdb dbname来创建上面的数据库吧、创建完毕后、就回到rails项目中、执行rake db:migrate来更改rails对数据库的操作吧、注意执行rake命令的当前用户一定是要username中指定的用户、不然会执行失败、


    P.S.:如果迩不想以默认的用户、就要使用createuser username来添加用户、然后为它添加密码、

    ALTER USER username WITH PASSWORD 'new password'

    然后用这个号码来登录ubuntu来执行以上操作、最好使用系统已经存在的帐户、如果不是就要自己新建同名的系统帐户

  • 相关阅读:
    python psutil监控系统资源【转】
    nc用法【转】
    python enumerate用法总结【转】
    find查找时排除目录及文件
    python自动安装mysql5.7【转】
    Nginx报错:upstream timed out (110: Connection timed out)和client intended to send too large body【转】
    linux压缩日志并删除原始文件
    mysql5.7主从复制--在线变更复制类型【转】
    MySQL 5.7在线设置复制过滤【转】
    Linux dd命令中dsync与fdatasync的区别【转】
  • 原文地址:https://www.cnblogs.com/klobohyz/p/2312342.html
Copyright © 2011-2022 走看看