Skip to content
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
Clone this wiki locally