我目前在Ubuntu 12.04中通过RVM安装了Ruby on Rails。 默认的数据库是在SQLite3中设置的,但是我想转换到PostgreSQL来推送到Heroku。 我怎样才能做到这一点?
以下是我遵循的步骤:
安装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
对于所有打开此线程的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
解释(你也可以指定一个密码):
sudo su postgres -c psql postgres=# CREATE ROLE gotqn SUPERUSER LOGIN; postgres=# \password gotqn postgres=# \q
注意:用whoami
结果替换上面的gotqn
:
创建你的rails应用程序最简单的方法是指定你正在使用postgresql
,如下所示:
rails new Demo -d postgresql
上面的代码会自动在您的GemFile
添加pg
gem并创建相应的database.yml
文件:
development: adapter: postgresql encoding: unicode database: Demo_development pool: 5 username: gotqn password: mypass
注意:如果您已经设置了这个密码,您需要更改用户名并指定正确的密码。
然后运行rake db:create
并启动rails服务器。
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
sudo apt-get install postgresql-9.3 libpq-dev