Files
huike-back/htyws
weli ce61c8b7d0 fix: prioritize student branch when both student_id and teacher_id present
The daka query branching checked teacher_id first. When a student
has currentTeacherId set, both params are present, causing the
teacher branch to activate (requires scope) and fail with
"scope can not be none". Fixed by adding student_id.is_none()
to the teacher branch condition.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-01 00:42:09 +08:00
..

慧添翼考试

启动数据库

$ pg_ctl -D /usr/local/var/postgres start

创建数据库

$ psql postgres
postgres=# create database htyws owner hty encoding utf8;
CREATE DATABASE
postgres=# \q

创建用户

postgres=# create user hty;
CREATE ROLE

改变数据库owner

postgres=# alter database htyws owner to hty;
ALTER DATABASE
postgres=#

改变tables的owner

htyws=# \dt
                  List of relations
 Schema |            Name            | Type  | Owner 
--------+----------------------------+-------+-------
 public | __diesel_schema_migrations | table | htyws
 public | rewards                    | table | weli
 public | users                      | table | weli
(3 rows)
htyws=# alter table __diesel_schema_migrations owner to htyws;
ALTER TABLE
htyws=# alter table rewards owner to htyws;
ALTER TABLE
htyws=# alter table users owner to htyws;
ALTER TABLE
htyws=# \dt
                  List of relations
 Schema |            Name            | Type  | Owner 
--------+----------------------------+-------+-------
 public | __diesel_schema_migrations | table | htyws
 public | rewards                    | table | htyws
 public | users                      | table | htyws
(3 rows)

htyws=# 

安装diesel_cli

$ cargo install diesel_cli --no-default-features --features postgres

初始化项目过程(已完成)

创建.env文件:

$ echo "DATABASE_URL=postgres://weli@localhost/htyws" > .env

里面是diesel要使用的数据库相关信息,上面就放数据库连接地址。

$ diesel setup
Creating migrations directory at: /Users/weli/works/htyws/migrations

创建用户表(初步工作完成)

创建第一个migration,创建一张users表:

$ diesel migration generate create_users
Creating migrations/2020-09-27-112838_create_users/up.sql
Creating migrations/2020-09-27-112838_create_users/down.sql

up.sql里面添加内容:

CREATE TABLE users (
  id SERIAL PRIMARY KEY,
  nickname VARCHAR UNIQUE NOT NULL
)

执行migration

$ diesel migration run                                                                                                                                                                                                          19:20:27
Running migration 2020-09-27-112838_create_users

数据库表可以看到已经创建:

postgres=# \c htyws 
You are now connected to database "htyws" as user "weli".
htyws=# \dt
                  List of relations
 Schema |            Name            | Type  | Owner 
--------+----------------------------+-------+-------
 public | __diesel_schema_migrations | table | weli
 public | users                      | table | weli
(2 rows)

htyws=# select * from users;
 id | nickname 
----+----------
(0 rows)

htyws=# 

生成/更新schema文件(每次重构要做)

使用diesel的命令更新schema.rs(在项目根目录执行):

$ diesel print-schema > src/schema.rs