美文网首页ruby&rails 测试Ruby
Rails[4]:配置数据库

Rails[4]:配置数据库

作者: gimp | 来源:发表于2014-12-26 17:06 被阅读2663次

操作系统:Fedora 21

Rails一般有三种环境: development, production, test.
一般来说,Rail在开发测试的时候使用sqlite数据库。
生产环境使用mysql或者postgresql。
(mysql已经被mariadb代替了)

1. sqlite

预先应该安装支持库。

sudo yum install -y sqlite-devel

sqlite使用的gem是sqlite3(在Gemfile里配置)

gem 'sqlite3'

不需要其他额外的配置。

2. mysql(mariadb)

预先安装支持库

sudo yum install mariadb-devel

安装mariadb,设置开机启动,启动数据库。

sudo yum install mariadb mariadb-server
sudo systemctl start mysqld
sudo systemctl enable mysqld

可以在新建项目的时候配置mysql,也可以在建立项目后进行配置。

  1. 新建项目的时候
rails new my_app -d mysql

生成的Gemfile里会有一行

gem 'mysql2'

切换到项目根目录后,运行bundle

cd my_app
bundle install

运行rake db:create,创建数据库。
不同环境下的命令如下(默认是development):

RAILS_ENV=production rake db:create
RAILS_ENV=test rake db:create
  1. 手工配置
    在Gemfile中添加,并运行bundle
gem 'mysql2'
bundle install

更改数据库的配置文件config/database.yml

default: &default
     adapter: mysql2
     encoding: utf8
     pool: 5
     username: root
     password:
     socket: /var/lib/mysql/mysql.sock
development:
     <<: *default
     database: my_app_development
test:
     <<: *default
     database: my_app_test
production:
     <<: *default
     database: my_app_production
     username: my_app
     password: <%= ENV['MY_APP_DATABASE_PASSWORD'] %>

运行rake db:create
如果不能正常运行,就把socket: /var/lib/mysql/mysql.sock 删除。

3. postgresql

安装postgresql,同时也安装postgresql的库。
可以参考Fedora的官方文档

sudo yum install postgresql-server postgresql-contrib postgresql-devel
sudo systemctl enable postgresql
sudo postgresql-setup initdb
sudo systemctl start postgresql

记得要修改一个配置文件pg_hba.conf ,没有安全考量的话,直接改成trust就好了。配置完后要重新启动postgresql。

/var/lib/pgsql/data/pg_hba.conf

在Rails项目中使用postgresql的方式跟使用mysql差不多。

rails new my_app -d postgresql

或者手工添加gem 'pg'到Gemfile
数据库的配置文件大概是这样的

default: &default
  adapter: postgresql
  encoding: unicode
  pool: 5

development:
  <<: *default
  database: my_app_development

test:
  <<: *default
  database: my_app_test

production:
  <<: *default
  database: my_app_production
  username: my_app
  password: <%= ENV['MY_APP_DATABASE_PASSWORD'] %>

如果rake db:create失败的话,添加下面两行到pool: 5下面

  username: postgres
  password: 

postgres是postgresql一个默认的用户,不用手工添加。

相关文章

  • Rails[4]:配置数据库

    操作系统:Fedora 21 Rails一般有三种环境: development, production, tes...

  • rails学习

    使用 $gem install rails 安装rails (具体前置配置看ruby配置环境) rails安装...

  • rails时间问题

    1、rails 数据库中默认存储的时间是UTC时间,UTC时间 + 时差 = 当地时间。Rails3、4中,默认采...

  • rails 环境配置

    ruby 的各种概念 环境配置 工具配置 rails路由配置 (routes.rb) rails 命令 实例如下:...

  • Mongoid学习

    1. 安装mongoid 在Rails 配置文件Gemfile中,做如下配置 2. 配置文件 执行 rails g...

  • 2018-07-14

    创建数据库 1、rails db:setup 如果数据库不存在,则创建数据库,并执行种子数据。2、rails db...

  • rails101再复盘-加深记忆-1

    2.2 开始 配置好基础,新建项目rails new rails101cd rails101git initgit...

  • rails笔记(3)

    rails切换到mysql数据库 rails自带的是sqllit3这个数据库,不熟系,所以决定切换到mysql。 ...

  • 用 air 给 Golang/Gin 框架提供热重启支持

    Golang 这种编译语言和 Rails/Python 这种脚本语言不同, 脚本语言做后端, 只要不是配置和数据库...

  • Rails Tip:多库操作

    我有个需求需要Rails连接mysql和sqlserver,这就需要rails的多数据库操作支持.rails对my...

网友评论

  • gimp:For Fedora 22
    Use the follow cmd
    sudo systemctl start mariadb.service
    sudo systemctl enable mariadb.service

本文标题:Rails[4]:配置数据库

本文链接:https://www.haomeiwen.com/subject/jxiatttx.html