Slide 31
Slide 31 text
ORM 周辺領域にある別の課題
DB リソースの定義や管理を ORM の担当領域でないとすると、テーブル構造に関する記述が重複する。
ORM のデータ型定義はテーブル構造に従わざるを得ないので、二重管理になるのはなにかと嫌。
スキーマ定義
CREATE TABLE "user" (
"id" TEXT PRIMARY KEY,
"name" TEXT NOT NULL,
"password_hash" TEXT NOT NULL
);
※ または、マイグレーションの定義
ORM のデータ型 (モデルクラス) 定義
class User(Base):
id = Column(String, primary_key=True)
name = Column(String, nullable=False)
password_hash = Column(String, nullable=False)
アプリケーション
同じことを2箇所に書いていて嫌