Skip to content

homenoc/dsbd-backend

Repository files navigation

HomeNOC WebSystem Backend

Go-Develop

特徴

  • ユーザ認証・登録システム
  • グループ認証
  • ネットワーク管理システム
  • メール送信
  • Slack通知
  • 各システムとの連携

セットアップ

開発ツールのインストール (aqua)

aquaを使用して開発ツール(Go, Air, golangci-lint)を管理しています。

# aquaのインストール(未インストールの場合)
brew install aquaproj/aqua/aqua

# PATHの設定(.zshrc または .bashrc に追加)
export PATH="$(aqua root-dir)/bin:$PATH"

# 開発ツールのインストール
aqua i

ローカル開発(推奨)

DBのみDockerで起動し、Goアプリはローカルで実行します。

# 初期設定(ローカル用config)
make setup

# DB起動
make db-up

# マイグレーション(初回のみ)
make migrate

# シードデータ作成(テストユーザー等)
make seed

# User API起動 (port 8080)
make run-user

# Admin API起動 (port 8081)
make run-admin

# DB停止
make db-down

Docker Compose(全サービス)

全てのサービスをDockerで起動します。

# 初期設定(Docker用config)
make setup-docker

# コンテナ起動
make docker-up

# マイグレーション(初回のみ)
make docker-migrate

# シードデータ作成(テストユーザー等)
make docker-seed

# ログ確認
make docker-logs

# コンテナ停止
make docker-down

テストアカウント

make seed で作成されるテストアカウント(User API用):

種別 メールアドレス パスワード 権限
マスター master@example.com password Level 1: 申請・変更・閲覧
一般メンバー member@example.com password Level 2: 一般メンバー

※ 反社チェック未同意状態で作成されます(PUT /api/v1/user/antisocial/agree で同意)

Admin APIは config.json のBasic認証を使用(デフォルト: admin/admin)

テスト

make test

MySQL

"Error 1406: Data too long for column 'question' at row 1"

桁数があふれる可能性があるので、以下のように設定

[mysqld]
sql_mode=''

本番データでのマイグレーションテスト

本番データ(data.sql)を使ってマイグレーションが通るかテストする手順:

# 1. DBを初期化してdata.sqlをインポート
docker compose down -v
docker compose up -d db
sleep 5
docker compose exec -T db mysql -uroot -proot dsbd-backend < data.sql

# 2. マイグレーション実行
make migrate

注意: 本番でマイグレーション前に無効な日付データの修正が必要な場合があります:

UPDATE ips SET start_date = NULL WHERE start_date = '0000-00-00 00:00:00';

Database

https://drawsql.app/y-net/diagrams/dsbd-backend/embed

About

backend(dsbdに移行予定)

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 7

Languages