このツールの動作
JSON の標本が Prisma の模型になります。
{ "id": 1, "name": "Ada", "tags": ["admin"], "score": 9.5 }
model Root {
id Int @id
name String
tags String[]
score Float
}
模型だけでは schema.prisma になりません。動くファイルには datasource と generator の区画も要ります。あなたのデータベースとクライアントを述べるもので、荷はそれについて何も語りません。
どの模型にも識別子が付く
Prisma は @id(または @@id)の無い模型を拒みます。prisma validate はそこで止まります。ですから、
IntかStringのidがあれば、それが識別子になります。idが無ければ足します。id Int @id @default(autoincrement())です。- 別の型の
id——小数、真偽値、入れ子のオブジェクト——は改名され、元の鍵を保ちます。
model Root {
id Int @id @default(autoincrement())
id2 Float @map("id")
name String
}
この最後の場合、以前は識別子のまったく無い模型が出ていました。妥当に見えて、コマンドが拒む Prisma です。この文章を書く過程で見つけ、直しました。
関係に見えるものを作り出さない
入れ子のオブジェクトは Json の列になります。別の表への関係だったかもしれませんが、当てにいけば、文書ひとつから模型と外部鍵と向きを作り出すことになります。オブジェクトの配列も、型の混ざった配列も同じです。
同じ型のスカラーの並びには、固有の並び型——String[]、Int[]——が付きます。PostgreSQL、CockroachDB、MongoDB にあるものです。MySQL や SQLite では Json に変えてください。出力に datasource が無い以上、どれをお使いかは分かりようがありません。
名前、null を許すか、そして標本が言わないこと
項目名は camelCase になり、元の鍵と食い違えば @map がそれを保ちます。content-type は contentType @map("content-type") になり、列の名前は変わりません。camelCase が同じになる二つの鍵は、混ぜずに番号を付けます。
省略可能な列になるのは null だけで、Json? です。ほかはすべて必須です。標本に値があったからで、そして、ある列が null を許すことを標本から学ぶのは筋が違います。? は一文字、付けるのはあなたです。
プライバシー
すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。