web-dev-qa-db-fra.com

Installation de PostgreSQL sur Ubuntu pour Ruby on Rails

J'ai actuellement Ruby on Rails installé via RVM dans Ubuntu 12.04. La base de données par défaut est configurée dans SQLite3, mais je voudrais passer à PostgreSQL pour les raisons de pousser vers Heroku. Comment puis-je y parvenir?

73
Nick

Voici les étapes que j'ai suivies:

Installez PostgreSQL et le package de développement

$ Sudo apt-get install postgresql
$ Sudo apt-get install libpq-dev

Configurer un utilisateur identique à ma connexion Ubuntu

$ Sudo su postgres -c psql
postgres=# CREATE ROLE <username> SUPERUSER LOGIN;
postgres=# \q

Modifier le fichier gemme

# Remove gem 'sqlite3'
gem 'pg'

Modifier database.yml dans le répertoire de l'application

development:
  adapter: postgresql
  encoding: unicode
  database: appname_development
  pool: 5
  timeout: 5000
  username: <username>
  password:

test:
  adapter: postgresql
  encoding: unicode
  database: appname_test
  pool: 5
  timeout: 5000
  username: <username>
  password:

Exécutez l'installation du bundle

$ bundle install

Créer des bases de données et des migrations

$ rake db:create:all
$ rake db:migrate

Voici les sources que j'ai utilisées pour aider:
http://mrfrosti.com/2011/11/postgresql-for-Ruby-on-Rails-on-ubuntu/
http://railscasts.com/episodes/342-migrating-to-postgresql
https://devcenter.heroku.com/articles/local-postgresql

165
Nick

Pour tous Ubuntu 13.10 les utilisateurs qui ouvrent ce fil suivent les étapes ci-dessous pour installer postresql:

Sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main' > /etc/apt/sources.list.d/pgdg.list"
wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | Sudo apt-key add -
Sudo apt-get update
Sudo apt-get install postgresql-common -t saucy
Sudo apt-get install postgresql-9.2 libpq-dev

car il n'y a pas de dépôt officiel Postgres pour Ubuntu 13.10.

Ensuite, créez l'utilisateur comme Nick explique (vous pouvez également spécifier un mot de passe):

Sudo su postgres -c psql
postgres=# CREATE ROLE gotqn SUPERUSER LOGIN;
postgres=# \password gotqn
postgres=# \q

Remarque: remplacez le gotqn ci-dessus par le résultat whoami:

enter image description here

La façon la plus simple de créer votre application Rails est de spécifier que vous utilisez postgresql comme suit:

Rails new Demo -d postgresql

Le code ci-dessus ajoutera automatiquement le pg gem dans votre GemFile et créera le database.yml fichier:

development:
  adapter: postgresql
  encoding: unicode
  database: Demo_development
  pool: 5
  username: gotqn
  password: mypass

Remarque: vous devez modifier le nom d'utilisateur et spécifier le mot de passe correct si vous l'avez défini.

Exécutez ensuite rake db:create et démarrez le serveur Rails.

6
gotqn

Sudo sh -c "echo 'deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main'> /etc/apt/sources.list.d/pgdg. liste"

wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | Sudo apt-key add -

Mise à jour Sudo apt-get

Sudo apt-get install postgresql-common

Sudo apt-get install postgresql-9.3 libpq-dev

2
Anjan