В настоящее время у меня есть Ruby on Rails, установленный через RVM в Ubuntu 12.04. База данных по умолчанию настроена в SQLite3, но я хотел бы перейти на PostgreSQL для целей нажатия на Heroku. Как я могу это сделать?Установка PostgreSQL на Ubuntu для Ruby on Rails
ответ
Вот шаги, я затем:
Установка PostgreSQL и разработка пакета
$ sudo apt-get install postgresql
$ sudo apt-get install libpq-dev
Настройка пользователя, которая является такой же, как мой Ubuntu войти в
$ sudo su postgres -c psql
postgres=# CREATE ROLE <username> SUPERUSER LOGIN;
postgres=# \q
Modify Gemfile
# Remove gem 'sqlite3'
gem 'pg'
Изменить database.yml
в каталоге приложения
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:
Run расслоением установить
$ bundle install
Создание баз данных и миграции
$ rake db:create:all
$ rake db:migrate
Вот источники, которые я использовал, чтобы помочь:
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
Для всех Ubuntu 13.10
пользователей, открывающих эту тему выполните следующие действия для установки 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
поскольку нет официального репозитория Postgres для Ubuntu 13.10
.
Затем создайте пользователь как Nick
объяснить (вы можете указать пароль тоже):
sudo su postgres -c psql
postgres=# CREATE ROLE gotqn SUPERUSER LOGIN;
postgres=# \password gotqn
postgres=# \q
Примечания: Заменить gotqn
выше с whoami
результата:
Самым простым способом создайте ваше приложение для рельсов, чтобы указать, что вы используете postgresql
следующим образом:
rails new Demo -d postgresql
Код выше автоматически добавит pg
драгоценный камень в вашем GemFile
и создать соответствующий database.yml
файл:
development:
adapter: postgresql
encoding: unicode
database: Demo_development
pool: 5
username: gotqn
password: mypass
Примечание: Вы должны изменить имя пользователя и указать правильный пароль, если вы установили такие.
Затем запустите rake db:create
и запустите сервер рельсов.
Sudo ш -с "эхо 'Деб http://apt.postgresql.org/pub/repos/apt/ точные-pgdg основного'> /etc/apt/sources.list.d/pgdg.list"
Wget --quiet -O - http://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | Sudo APT-ключ добавить -
Sudo APT-получить обновление
Sudo APT-получить установку PostgreSQL-общий
Sudo APT-получить установку PostgreSQL-9,3 libpq-DEV
Если вы хотите добавить пароль использует эту команду после запуска 'CREATE ROLE':' ALTER ROLE WITH PASSWORD ''; 'затем, очевидно, добавить свой пароль в' database.yml' –
Hengjie
В качестве альтернативы, если вы просто создаете роль для первого и хотите ввести пароль: 'CREATE ROLE SUPERUSER LOGIN PASSWORD ' '; ' –
Hengjie
Если вы установите пользователя как идентичное с вашим именем пользователя unix, безопасно ли это, даже если пароль отсутствует? На основании, например, ссылки mrfrosti.com выше, а также Postok.app Heroku, похоже, что это часто предложенный маршрут. –