我目前在Ubuntu 12.04中通过RVM安装了Ruby on Rails。默认数据库是在SQLite3中设置的,但是为了推送到Heroku,我想切换到PostgreSQL。我怎么能做到这一点?
答案 0 :(得分:165)
以下是我遵循的步骤:
安装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
修改Gemfile
# Remove gem 'sqlite3'
gem 'pg'
修改app目录中的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:
运行捆绑安装
$ 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
答案 1 :(得分:6)
对于打开此主题的所有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
因为Ubuntu 13.10
没有正式的Postgres存储库。
然后将用户创建为Nick
explain(您也可以指定密码):
sudo su postgres -c psql
postgres=# CREATE ROLE gotqn SUPERUSER LOGIN;
postgres=# \password gotqn
postgres=# \q
注意:将上面的gotqn
替换为whoami
结果:
创建rails应用程序的最简单方法是指定您使用postgresql
,如下所示:
rails new Demo -d postgresql
上面的代码会自动在pg
中添加GemFile
gem并创建相应的database.yml
文件:
development:
adapter: postgresql
encoding: unicode
database: Demo_development
pool: 5
username: gotqn
password: mypass
注意:如果设置了这样的名称,则需要更改用户名并指定正确的密码。
然后运行rake db:create
并启动rails服务器。
答案 2 :(得分:2)
sudo sh -c“echo'deb http://apt.postgresql.org/pub/repos/apt/ precise-pgdg main'&gt; /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
sudo apt-get install postgresql-9.3 libpq-dev