- Python 3.13+
- Node.js 18.17+
- PostgreSQL 16.1+
- Docker
- hasura-cli
※ Mac (M4) MacOS 15.3(24D2059)にて確認
-
uv sync -
docker compose up -
環境変数
DATABASE_URLを設定 -
uv run python scripts/initialize_or_update_db.pyを実行してテーブルを生成 -
uv run python scripts/initialize_master_data.pyを実行して初期データをインポート -
uv run python -m celery -A metaboatrace.crawlers worker --loglevel=info -
uv run python -m celery -A metaboatrace.crawlers flower(管理画面) -
uv run python -m celery -A metaboatrace.crawlers beat(定期実行)
※ 事前に brew install postgresql@17 などを実行し PostgreSQL の CLI が利用できるようになっていること
$ psql -h 127.0.0.1 -p 55432 -U postgres -d metaboatrace_development -f 20200501.dump$ docker compose exec -it db pg_dump -U postgres -d metaboatrace_development -n public --data-only --exclude-table='stadiums' --exclude-table='racers' > 2023_2.dump※ pg_dump はホストコンピューターとコンテナに入っている PostgreSQL のバージョン間が一致しないとエラーが起きるので、 docker compose を利用
hasura/config.yaml を以下のように適当に作成する
version: 3
endpoint: http://localhost:8080Hasura コンソールで設定変更(テーブルのトラック、リレーション追加、権限設定など)を行った後は、以下を実行
$ make hasura_export_metadataその後、変更内容を Git にコミット
別の開発環境や本番環境で最新のメタデータを適用する場合は、以下を実行
$ make hasura_apply_metadata適当にリクエストしてレスポンスを得られたら OK
$ curl -X POST \
http://localhost:8080/v1/graphql \
-H 'Content-Type: application/json' \
-d '{
"query": "query { events { stadium_tel_code title starts_on } }"
}' | jqpsycopg2-binaryを代用可能
Celery で +[NSCharacterSet initialize] may have been in progress in another thread when fork() was called. のようなエラーが出る
OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES uv run python -m celery -A metaboatrace.crawlers worker --loglevel=infoのように環境変数を設定してからワーカーや beat を起動する
rm celerybeat-schedule.dbを実行して再起動する