02 Apr

PostgreSQL и ROR 3.

После разработки нашего приложения на Ruby on Rails 3 , необходимо развернуть его на более мощном РСУБД. Одним из таких являеться PostgreSQL. Дополнительную информацию можно найти на официальном сайте и в википедии.
Собственно для перехода к дальнейшим действиям, подразуемваеться что у нас в системе установлен:
1) PostgreSQL.
2) Создан пользователь.
3) Создана таблица(Можно эксперементировать с стандартным пользователем – postgres)
Если же нет – то рекомендую обратиться на официальную страницу(для Debian – в Debian wiki), где подробнейшим образом описана установка PostgreSQL. Создание юзера и пустой базы данных можно найти в официальной документации.
И так, у нас уже установлен PostgreSQL, Ruby 1.9.2 , стандартный набор гемов, rvm, Ruby on Rails 3.
Чтоб связать Ruby и PostgreSQL, необходимо установить дополнительные пакеты,если они у нас еще не установлены:

1
$sudo apt-get install libpq-dev libecpg-dev libecpg-compat3 libecpg6 libpgtypes3  ruby1.8-dev

Переходим на Ruby 1.9.2

1
$rvm 1.9.2

Далее устанавливаем gem pg, который собственно и связывает два наших гиганта.

1
2
3
4
5
6
biotin@debian:~$ gem install pg
Building native extensions.  This could take a while...
Successfully installed pg-0.10.1
1 gem installed
Installing ri documentation for pg-0.10.1...
Installing RDoc documentation for pg-0.10.1...

Добавляем его в Gemfile нашего проекта:

1
2
3
4
5
6
7
8
9
10
11
source 'http://rubygems.org'
gem 'rails', '3.0.5'
<ol>
<li>Bundle edge Rails instead:</li>
<li>gem 'rails', :git = >'git://github.com/rails/rails.git'</li>
</ol>


#gem 'sqlite3'
gem 'pg'
.....

Далее производим некоторые изменения в файле config/database.yml нашего Rails проекта:

1
2
3
4
5
6
7
8
9
production:
  adapter: postgresql
  host: localhost
  port: 5432
  username: <ваш логин в PostgreSQL>
  password: <ваш пароль>
  database: <cозданная вами же пустая база данных в PostgreSQL >
  schema_search_path: public
  encoding: utf8

Точно эти же значения подставляем в test и development.
Мигрируем:

1
rake db:migrate

Если все произойдет удачно, увидим строчки миграции БД нашего проекта.

Tweet about this on TwitterShare on FacebookShare on Google+Share on RedditShare on VK