Статус: Устаревший
Эта статья устарела и больше не поддерживается.
Причина
Теперь мы предоставляем актуальные учебники по использованию Rails с Postgres, которые адаптированы под индивидуальные платформы.
Смотрите вместо этого
Эта статья может быть полезной в качестве справочного материала, но может не работать или не соответствовать лучшим практикам. Мы настоятельно рекомендуем использовать недавнюю статью, написанную для операционной системы, которую вы используете.
Введение
Postgres (или PostgreSQL) – это база данных с открытым исходным кодом. Ruby on Rails – это веб-фреймворк с открытым исходным кодом, написанный на Ruby. Rails является базой данных-независимым, что означает, что его можно использовать с различными базами данных. По умолчанию он предполагает использование MySQL, но его также можно легко использовать вместо этого с Postgres.
Это руководство поможет вам создать приложение Rails, которое использует базу данных Postgres. Вы можете следовать этому руководству на своем локальном компьютере или на VPS.
Установка необходимых компонентов
Установка Rails с помощью RVM
Самый простой способ установки Rails – использовать RVM, который также устанавливает Ruby. Чтобы установить RVM, вам потребуется убедиться, что на вашей системе установлен curl (как это сделать, зависит от вашей операционной системы). Если у вас уже установлен RVM, перейдите к следующему разделу.
RVM может автоматически установить Ruby и Rails как часть своей установки. Для этого выполните эту команду:
\curl -L https://get.rvm.io | bash -s stable --rails
Примечание: перед выполнением этой команды (или любого другого удаленного сценария, который вы перенаправляете в bash
), вы должны просмотреть скрипт установки RVM.
RVM установит себя на вашу систему. Теперь вы можете использовать его для управления версиями Ruby. Это полезно, так как вам может понадобиться разные версии Ruby для разных проектов. RVM также установил гем Rails для нас.
Установка Rails с использованием RubyGems
Если у вас уже установлен RVM, вам не нужно переустанавливать его. Вместо этого вы можете просто установить Rails, установив гем:
gem install rails
Это установит Rails и любые другие гемы, которые ему требуются.
Установка Postgres
Способ установки Postgres зависит от вашей операционной системы. См. полный список на postgresql.org/download. Обычно самый простой способ использовать менеджер пакетов, такой как apt-get в Ubuntu или Homebrew в OS X.
Если вы устанавливаете Postgres на локальную машину, вам также может понадобиться установить графический интерфейс (хотя этот руководство предполагает использование командной строки). pgAdmin не самый красивый инструмент в мире, но он справляется с задачей.
Наконец, вам нужно установить гем pg, чтобы вы могли взаимодействовать с Postgres из кода Ruby. Для этого:
gem install pg
Настройка Postgres
Создайте пользователя Postgres для приложения Rails, которое мы создадим на следующем этапе. Для этого переключитесь на пользователя Postgres:
su - postgres
После этого получите доступ к Postgres:
psql
Затем создайте пользователя (или “роль”, как называет его Postgres):
create role myapp with createdb login password 'password1';
Создание вашего приложения Rails
Чтобы создать приложение Rails, настроенное для Postgres, выполните эту команду:
rails new myapp --database=postgresql
Это создает каталог под названием “myapp”, в котором находится приложение под названием “myapp” (вы можете дать ему любое имя при запуске команды). Rails ожидает, что имя пользователя базы данных будет совпадать с именем приложения, но вы можете легко изменить это при необходимости.
Теперь мы настроим, с какой базой данных будет взаимодействовать Rails. Это делается с использованием файла database.yml, расположенного по адресу:
RAILS_ROOT/config/database.yml
Примечание: RAILS_ROOT – это корневой каталог Rails. В приведенном выше примере он будет находиться в /myapp (относительно вашего текущего местоположения).
Файл database.yml используется Rails для подключения к соответствующей базе данных для текущей среды Rails. Он использует YAML, стандарт сериализации данных. Здесь перечислены несколько баз данных для разных сред; development, test и production. По умолчанию Rails ожидает отличную базу данных для каждой среды. Это удобно, потому что, например, тестовая база данных очищается и перестраивается каждый раз при запуске тестов Rails. Для каждой базы данных убедитесь, что имя пользователя и пароль совпадают с именем пользователя и паролем, которые вы дали своему пользователю Postgres.
После настройки ваш файл database.yml должен содержать что-то вроде этого:
development:
adapter: postgresql
encoding: unicode
database: myapp_development
pool: 5
username: myapp
password: password1
test:
adapter: postgresql
encoding: unicode
database: myapp_test
pool: 5
username: myapp
password: password1
Затем вы можете выполнить:
rake db:setup
Это создаст базы данных для разработки и тестирования, установит их владельцами указанного пользователя и создаст таблицы “schema_migrations” в каждой из них. Эта таблица используется для записи ваших миграций в схемы и данные.
Запуск Rails
Теперь вы должны быть в состоянии запустить ваше приложение Rails:
rails server
Если вы перейдете по адресу localhost:3000, вы увидите стартовую страницу Rails. Однако на данный момент она не делает многое. Чтобы взаимодействовать с нашей базой данных, давайте создадим каркас (scaffold):
rails g scaffold Post title:string body:text
rake db:migrate
Теперь перейдите по адресу localhost:3000/posts. Отсюда вы можете создавать новые записи, редактировать существующие и удалять их. См. Руководство по началу работы с Rails для более подробной информации о начальных операциях.
Ваше приложение Rails теперь связано с базой данных Postgres!
Source:
https://www.digitalocean.com/community/tutorials/how-to-set-up-ruby-on-rails-with-postgres