https://2021.pycon.jp/time-table/?id=273396
Webアプリ開発とデータベースマイグレーションには密接な関係があり、Pythonでよく採用されるDjangoやSQLAlchemyには、DBのスキーマを変更するマイグレーション機能があります。一般的に、プログラムを実装するときはリポジトリでブランチを作りそれぞれのブランチで実装作業を進めます。Webアプリの開発でも同様ですが、各ブランチでDBスキーマを変更する場合には注意が必要です。例えば、複数のブランチで同じテーブルのカラムを追加して使いたい場合や、DBスキーマの変更が競合する場合は、ブランチのマージ時に競合してしまいます。多くの機能を並行開発したり、マージするまでの期間が長い場合には、このような競合が増えてしまいます。
このトークでは、Djangoを例に、データベースマイグレーションの仕組みから、実際の開発現場で発生したトラブルとその解決方法について紹介します。
Migration strategies for parallel development of web applications
33. ? 条件式で参照するパラメータ
? 表?名を利?
? 整数として計算ロジックで参照
计算フィールドで読むパラメータ
VALUE DISPLAY AS
YEAR YEAR
QUARTER QUARTER
MONTH MONTH
WEEK WEEK
DAY DAY
VALUE DISPLAY AS
1 YEAR
2 QUARTER
3 MONTH
4 WEEK
5 DAY
35. ? ELSEIF != ELSE IF
IF [REGION] = "EAST" AND [CUSTOMER SEGMENT] = "CONSUMER"
THEN "EAST-CONSUMER"
ELSE IF [REGION] = "EAST" AND [CUSTOMER SEGMENT] <>"CONSUMER"
THEN "EAST-ALL OTHERS"
END
END
? 改善例:
IF [REGION] = "EAST" AND [CUSTOMER SEGMENT] = "CONSUMER"
THEN "EAST-CONSUMER"
ELSEIF [REGION] = "EAST" AND [CUSTOMER SEGMENT] <>"CONSUMER"
THEN "EAST-ALL OTHERS"
END
? 更に改善:
IF [REGION] = "EAST" THEN
IF [CUSTOMER SEGMENT] = "CONSUMER" THEN
"EAST-CONSUMER"
ELSE "EAST-ALL OTHERS"
END
END
ロジック関数
55. -Stephen Few
“A dashboard is a visual display of the most
important information needed to achieve one
or more objectives, consolidated and
arranged on a single screen so the
information can be monitored at a glance.”