Skip to content
This repository has been archived by the owner on Dec 2, 2022. It is now read-only.

テーブルやカラムを増やす場合

uplus edited this page Mar 16, 2020 · 13 revisions

テーブルやカラムを追加する

docker-compose exec api rails g migration <マイグレーション名>

# マイグレーションファイルを編集
hogehoge

# マイグレーションを実行
docker-compose exec api rails db:remigrate

remigratedb:drop db:create db:migrateの略。 migrateだとカラム追加時に null: falseをデフォルト値無しで実行すると既存のレコードがマイグレートできなくて失敗する。 運用中のDBをマイグレートする場合はデフォルト値が必須だが、スコアサーバは常設では無いためその必要はない。

スキーマ変更後にPullした場合

docker-compose exec api rails db:drop
docker-compose exec api rails db:setup

留意点

  • DB側ではデフォルト値を設定しいない方針。
    • デフォルト値がUI, APIのインターフェース, モデル, DBスキーマで分散しないようにしてる
    • そもそもデフォルト値は使わず明示する方針
  • emptyになれるカラムはnull不可にする
    • 主に文字列型
    • emptyとnullがごっちゃになるとバグの元になる
    • 文字列がnull許容だとUI側特につらい

スキーマ変更時のチェックリスト

  • API
    • model
    • factory
    • seed
    • readable.rb
    • query
    • mutation
    • graphql/acl.rb
    • graphql/notificatoin.rb
  • UI
    • 各orm
    • orm.Mutations
    • orm.Queriesの自動リロード
    • ImportModalやProblemModalなど
    • 各コンポーネント
  • その他
    • Insomnia