跳到主要内容

设计数据库

  1. 使用postgreSQL
  2. 通过docker模拟数据库,生产上不建议使用

配置数据库

database配置:config/database.yml

development:
<<: *default
database: mangosteen_dev
username: mangosteen
password: 123456
host: db-for-mangosteen

创建数据库镜像

  • 使用docker镜像作为开发数据库
docker run -d --name db-for-mangosteen -e POSTGRES_USER=mangosteen      -e POSTGRES_PASSWORD=123456 -e POSTGRES_DB=mangosteen_dev -e PGDATA=/var/lib/postgresql/data/pgdata -v mangosteen-data:/var/lib/postgresql/data --network=network1 postgres:14

注意network的配置需要在两个镜像之间保持一致,才能连接成功

两种思路

  • 自上而下:先想再添细节
  • 自下而上:想到什么加什么

创建数据数据模型

# 创建model数据模型 [表名称 字段:类型]
bin/rails generate model user email:string name:string

数据库处理命令

# 改变表结构
bin/rails db:migrate
# 回滚
bin/rails db:rollback

创建数据库字段

class CreateUsers < ActiveRecord::Migration[7.0]
def change
create_table :users do |t|
t.string :email
t.string :name

t.timestamps
end
end
end

创建controller

# 命令
bin/rails generate controller users create show

exsample

class UsersController < ApplicationController
def create
p '访问了create'
p params
if user.save
p 'save 成功'
render json: user
else
p 'save 失败'
render json: user.errors
end
end

def show
p '访问了show'
user = User.find_by_id params[:id]
if user
render json:user.name
else
head 404
end
end
end

创建生产环境数据库

docker exec -it mangosteen-prod-1 bin/rails db:create db:migrat