-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Yasuaki Yoshii edited this page Nov 6, 2020
·
12 revisions
Welcome to the card-playroom-server wiki!
actix-webのサンプルコード
vscodeでReopen in Container
する
.env
ファイルにDATABASE_URL=postgres://admin:admin@db/mydb
を追加.
diesel
のセットアップを行う.
root# diesel setup
root# diesel migration generate create_rooms # 既に作成済みの場合は必要なし
up.sql
に以下を追記.
CREATE TABLE rooms (
id SERIAL PRIMARY KEY,
name VARCHAR NOT NULL,
players TEXT[] NOT NULL
);
データベース起動
root# diesel migration run
サーバー起動
root# cargo run # local-container間の同期が早い場合
root# cargo run --target-dir /tmp/target # local-container間の同期が遅い場合
データ追加
- createRoom(ルーム作成)
mutation {
createRoom(name: "hoge", player: "fuga") {
id, name, players
}
}
- enterRoom(ルーム参加)
mutation {
enterRoom(player: "piyo", roomId: 1) {
id, name, players
}
}
データ取得
query {
rooms{id, name, players}
}
http://0.0.0.0:8080 にサーバーが建てられる.
up.sql
を変更した場合,以下のコマンドでデータベースの更新を行う.
diesel database reset
上記の変更後,schema.rs
の変更が自動で行われ,以下のコマンドでデータベースのスキーマを確認できる.
diesel print-schema