Skip to Content
Nextra 4.0 is released 🎉
schema

スキーマ駆動開発

どのツールで何を自動生成できるか

元データ生成物主なツール・サービス例備考
テーブル定義書(Excel/CSV/DDL)DBスキーマ(SQL, ORM)DB設計ツール(ERD Cloud, dbdiagram.io, SQL Power Architect)
Prisma Migrate, Sequelize-CLI, TypeORM-CLI
ER図ツールでDDL生成、ORMでマイグレーションファイル作成
DBスキーマGraphQLスキーマHasura, Prisma + Nexus, PostGraphile, graphql-meshHasuraやPostGraphileはDBから直接GraphQLスキーマを自動生成
GraphQLスキーマgRPC .protoファイルgraphql-to-proto(OSSツール)、自作スクリプト自動変換ツールは限定的。設計ルールの統一が必要
GraphQLスキーマリゾルバ雛形GraphQL Code Generator(typescript-resolvers plugin)ロジック実装は手作業。雛形や型付きインターフェース生成可能
GraphQLスキーマReact/Next.jsコード(型, Hooks等)GraphQL Code Generator(typescript, react-apollo plugin等)フロントエンド用の型やHooks, SDKを自動生成

ツール詳細補足

  • DBスキーマ→GraphQLスキーマ

    • Hasura:PostgreSQLから自動でGraphQLエンドポイントを構築
    • Prisma + Nexus:PrismaでDB型生成、Nexusで型安全なGraphQLスキーマ生成
    • PostGraphile:PostgreSQL→GraphQL自動化
  • GraphQLスキーマ→gRPC .proto

  • GraphQLスキーマ→リゾルバ雛形

    • GraphQL Code Generator:typescript-resolversプラグイン
  • GraphQLスキーマ→React/Next.jsコード

    • GraphQL Code Generator:typescript, typescript-operations, typescript-react-apolloプラグイン等

備考

  • 特に「GraphQLスキーマ→gRPC .proto」は、自動変換ツールがまだ少なく、構造の対応関係や型制約の違いに注意が必要です。
  • 「テーブル定義書→DBスキーマ」はDBごと・現場ごとに微妙なノウハウ差があります。
  • フロントエンド用のコード生成(型・Hooks)はGraphQL Code Generator一択レベルで支持されています。


Python(FastAPI)で使えるORM」かつ「Oracle Autonomous Databaseに対応したツールPython(FastAPI)で使えるORM」かつ「Oracle Autonomous Databaseに対応したツール

元データ生成物主なツール・サービス例備考
テーブル定義書(Excel/CSV/DDL)DBスキーマ(SQL, ORMモデル)ERDツール(ERD Cloud, dbdiagram.io, SQL Power Architect)
SQLAlchemy(Oracle対応)
Alembic(マイグレーション管理)
SQLAlchemyはPythonでOracle DB対応ORM
DBスキーマGraphQLスキーマAriadne, Strawberry GraphQL, graphene-oracle
(Hasura/PostGraphileはOracle未対応)
DBスキーマからGraphQL型への自動生成は手動調整が多め
GraphQLスキーマgRPC .protoファイルgraphql-to-proto、自作スクリプトOracle依存なし、設計調整必要
GraphQLスキーマリゾルバ雛形GraphQL Code Generator(typescript-resolvers)、Ariadneコード生成スクリプトPython用雛形は自作しやすい
GraphQLスキーマReact/Next.jsコード(型, Hooks等)GraphQL Code Generator(typescript, react-apolloプラグイン等)フロントエンドは従来通り

ツールのポイント

1. SQLAlchemy

  • Python製ORMのデファクトスタンダード。
  • Oracle Databaseに正式対応(cx_Oracleドライバ利用)。
  • マイグレーションはAlembicを使う。

2. Ariadne / Strawberry / Graphene

  • Python製GraphQLサーバーフレームワーク。
  • Grapheneはgraphene-oracleでOracleの直接サポートあり。
  • DBスキーマからGraphQL型への変換は、ORMモデルからGraphQL型をマッピングするコードを書くことが多い。

3. GraphQL Code Generator

  • フロントエンド(React/Next.js)向けコード生成に引き続き最強。
  • バックエンドの型やリゾルバ雛形生成にも使えるが、TypeScript寄り。

4. graphql-to-proto

  • GraphQLスキーマからgRPCの.protoファイル変換にチャレンジしたい場合に。

備考

  • Oracle Autonomous Database用のDDL出力やSQLAlchemyモデル生成は、Oracle SQL Developer(公式GUIツール)やsqlacodegen(既存DBからSQLAlchemyモデル自動生成)なども利用可能です。
  • PythonのGraphQL系フレームワーク(Ariadne/Strawberry/Graphene)は、DB直結の自動生成までは未対応が多く、モデル→型定義の補助スクリプトを書くパターンが一般的です。

参考URL


Last updated on