顯示具有 PostgreSQL與程序語言開發 標籤的文章。 顯示所有文章
顯示具有 PostgreSQL與程序語言開發 標籤的文章。 顯示所有文章

2007-08-31

Windows下安装Rails的PostgreSQL驱动

更新:2007- 09-01
內容:
Ruby下有两种PostgreSQL驱动:

第一种,原生Ruby驱动,纯Ruby编写
Windows下安装:
>gem install postgres-pr
或者直接从http://rubyforge.org/frs/download.php/3858/postgres-pr-0.4.0.gem下载,目前最新版本为0.4.0。下载完成之后执行
>gem install postgres-pr-0.4.0.gem

第二种,基于libpq C库实现,性能更好一些。
Windows下安装:
http://rubyforge.org/frs/download.php/9554/ruby-postgres-0.7.1.2006.04.06-mswin32.gem下载,目前最新版本为0.7.1。下载完成之后执行
>gem install ruby-postgres-0.7.1.2006.04.06-mswin32.gem
安装完成后,将PostgreSQL安装目录下的bin目录路径添加到Windows环境变量path中。或者将bin目录下的所有dll文件拷贝到Ruby安装目录的bin目录下。

配置:

修改 config/database.yaml文件
删除所有内容并添加以下内容


development:
adapter: postgresql
host: 127.0.0.1
port: 5432
username: test
password: test
database: test
encoding: UTF-8
test:
adapter: postgresql
host: 127.0.0.1
port: 5432
username: test
password: test
database: test
encoding: UTF-8
production:
adapter: postgresql
host: 127.0.0.1
port: 5432
username: test
password: test
database: test
encoding: UTF-8



其他可选参数为:


allow_concurrency: false
schema_search_path: myapp,sharedapp,public
schema_order: myapp,sharedapp,public
min_messages: NOTICE


这些参数中
adapter参数必须指定为 postgresql (如果使用PostgreSQL数据库的话)
host为数据库服务器所在主机,默认为localhost
port为数据库服务器所监听的端口号,默认为 5432,
username为登录用户名,默认为空
password为登录密码,默认为空
database为连接的数据库名称,也必须指定。

encoding为客户端编码,默认为该数据库的默认客户端编码,,一般情况下建议和页面编码一致,推荐使用UTF-8,驱动通过执行SET client_encoding TO 语句来设置。

allow_concurrency默认为false,表示是否允许并发访问,从驱动的代码来看,postgres-pr并未实现并发访问,所以,当使用postgres-pr驱动时,只能设置为false或者不设置该参数。而基于libpq C库实现的ruby-postgres支持该参数,可已设置为true,不过,建议不设置该参数。

schema_search_path和schema_order等效,为schema搜索顺序。
从activerecord中的代码来看:
pga.schema_search_path = config[:schema_search_path] ll config[:schema_order]
会优先使用schema_search_path配置,如果schema_search_path没有设置,则使用schema_order参数,如果二者都没有设定,则使用当前数据库默认schema_search_path

min_messages 为客户端信息的详细程度,可设定为 DEBUG5, DEBUG4, DEBUG3, DEBUG2, DEBUG1, LOG, NOTICE, WARNING, ERROR, FATAL, 和PANIC。越靠后的数值细节越少,默认值为NOTICE。 驱动通过执行 SET client_min_messages TO 语句来设置。

测试一下,假定Rails程序为MyApp
C:\workspace\MyApp>ruby script/console
>> Loading development environment.
>> ActiveRecord::Base.find_by_sql "SELECT * FROM tests "
>> …

更多设置,请参考http://wiki.rubyonrails.com/rails/pages/PostgreSQL
客户端信息的详细程度 ,请参考http://www.pgsqldb.org/pgsqldoc-8.1c/runtime-config-logging.html

2007-08-20

Ruby on Rails - PostgreSQL for Debian/Ubuntu 安裝

更新:2007-08-20
對映章節:

內容:
這是篇基礎的安裝教學, 總是有學生問到,
阿益整理分享給需要的朋友們:

GNU/Debian & Ubuntu 是個很棒的自由系統,
安裝的方式雷同, 唯一必需留意的是
Ubuntu 必須是 root 來進行以下的工作過程 (sudo)
APT: aptitude 亦可替換成其它套件管理程式, 例如 apt-get

  1. Ruby
    早已經進了Debian/Ubuntu的套件庫中
    細節: http://packages.debian.org/testing/interpreters/ruby1.8
    所以基本上安裝很簡易, 只要執行 APT 工具即可完成:
    #aptitude install ruby1.8
    相依性自動也幫你安裝了 irb1.8, rdoc1.8

  2. RubyGems
    是 Ruby 專屬的套件管理程式, 同 Ruby 也在官方套件庫裡了
    細節: http://packages.debian.org/testing/interpreters/rubygems
    安裝方式也同Ruby, 且是目前最新的版本:
    #aptitude install rubygems
    rubygems 相依性依賴著 ruby1.8, 安裝後會即有 gem 命令工具存在.

  3. Rails
    是 Ruby MVC網頁開發快速建構的強項,
    必須使用RubyGems套件管理程式來進行安裝與後期的更新管理,
    使用 gem 命令來進行:
    #gem install -y rails
    參數 -y 亦可改寫成 --include-dependencies 意同自動安裝相依性套件,
    安裝後即可使用 rails 命令來創建 rails project.

  4. PostgreSQL for Ruby
    這點可能不同與其它平台的方式, 在其它的OS必須使用
    #gem install ruby-postgres 或者 #gem install postgres
    (二者結果相同)來進行安裝 PostgreSQL libpg C 函數庫的連結.
    但在 GNU/Debian & Ubuntu 更可以輕易的使用如下方式安裝:
    #aptitude install libpgsql-ruby
    效果同等上述其它OS的操作方式.
    細節: http://packages.debian.org/unstable/interpreters/libpgsql-ruby
    細節: http://packages.qa.debian.org/libp/libpgsql-ruby.html

  5. 測試 PostgreSQL for Ruby 的有效性
    irb 命令是 Ruby 互動式的命令列環境, 透過它可快速測試 RoR
    # irb
    irb(main):001:0> require 'postgres'
    => true
    irb(main):002:0> exit

延伸閱讀(Link):

PostgreSQL & Google-Analytics Running...

::Planet PostgreSQL::

PostgreSQL Information Page

PostgreSQL日記(日本 石井達夫先生Blog)

PostgreSQL News

黑喵的家 - 資料庫相關

Google 網上論壇
PostgreSQL 8 DBA 專業指南中文版
書籍內容討論與更多下載區(造訪此群組)
目錄下載: PostgreSQL_8 _DBA_Index_zh_TW.pdf (更新:2007-05-18)

全球訪客分佈圖(Google)

全球訪客分佈圖(Google)