Prisma + TypesScriptプロジェクトの起動
この記事では、このシリーズの残りの部分を通して我々は別のオプションに深いダイビングを取るでしょうつはクールな機能、ユニークな“ORM”の経験のトンを提供し、開発者の積極的な、専用のチームをサポートし、それに取り組んでいます.そのオプションはPrisma .
Prismaとは
最も基本的なレベルでは、Prismaはあなたのデータベースにアクセスし、対話を有効にするツールのセットを提供します.伝統的なORMと同じ機能の多くを提供している間、PrismaはORMの「データマッパー」モデルとタイプセーフインタラクションのその慎重な考慮として知られているもののそのユニークな実装のために次のGen ORMとしてそれ自体を説明します.
偉大なORMツール(Prismaクライアント)を提供するとともに、Prismaもデータベース移行ツールを提供します
Prisma Migrate
そして、あなたの接続されたデータベース内のデータを視覚化し、更新することができます素敵なGUIPrisma Studio
. この記事での我々の焦点とシリーズの残りはPrisma Client
そして、その豊かな機能セット.Prismaがこのシリーズでどのように機能するかについてより多くを学ぶように、我々はPrismaをとても強力で、他のツールから利用できるようにする多くの特徴で遊びます.
If you'd like to learn more about the different types of ORMs and where Prisma fits in and differs from those, please give this page a read.
ジャンピング
私はすべての利点、下向き、使用するケース、およびdon ' t - t - case(それは正しいフレーズですか?)を経ることを始めるのが大好きですPrismaの、私はあなたが良いものを得ることを切望していると確信しています.Prismaの超簡単なセットアップに右に飛び込んでください、そして、我々は何がPrismaであるかについて若干の前後関係を得ることができて、whatsを見て、そして、なぜ後に続きます.
This tutorial will assume a basic knowledge of JavaScript and its development ecosystem, TypeScript, and Database Terminology. If you want to brush up on these, check out these pages on npm, TypeScript, and SQLite
ここでの例ではPrismaをSQLiteデータベースに接続しますが、PrismaはPostgres、MySQL、MSSQL、およびMongoDBもサポートしています.
物事を開始するには、プロジェクトのフォルダを作成して初期化しましょう
npm
その中で、様々なパッケージをインストールするために使用します.すべてのために糸恋人🐈, 代わりに自由に使ってください.mkdir <my-project>
cd <my-project>
npm init -y
次に、私たちの開発依存性をインストールしますnpm i -d prisma typescript ts-node @types/node
すべてのパッケージをインストールすると、我々は今、追加することによってtypescriptを設定することができますtsconfig.json
ファイル、単純なtypescriptファイル、およびスクリプトpackage.json
開発サーバを起動するために実行できます.// tsconfig.json
// This is just a basic setup, feel free to tweak as needed
{
"compilerOptions": {
"sourceMap": true,
"outDir": "dist",
"strict": true,
"lib": ["esnext"],
"esModuleInterop": true
}
}
// main.ts
console.log("I'm Running!")
インpackage.json
, 以下を加える"scripts"
セクション"dev": "ts-node main",
さて、プロジェクトのルートの端末でnpm run dev
...出力は次のようになります.私たちのプロジェクトは、typescriptと準備ができてファンシーを取得する準備が整いました!現在、我々はPrismaをセットアップするために動きます.
Prismaの設定
初期化
Prismaを得るためのステップはかなり簡単です.私たちには依存関係が既にインストールされているので、起動するには
init
コマンドと私たちは私たちのデータソースとしてSQLiteを使用するつもりです教えてください.オプションの完全なリストについてはinit
コマンド、チェックアウトdocs .prisma init --datasource-provider sqlite
あなたのプロジェクトの新しいフォルダに気づくでしょうprisma
だけでなく.env
ファイルのプロジェクトのルート.そのフォルダの内容はファイル名でなければなりませんschema.prisma
, どのファイルがどのように定義されますかPrisma Client
生成し、モデルデータを生成します.次に、SQLite DBファイルを出力するPrismaを伝える必要があります.に
.env
ファイルを確認しましょうDATASOURCE_URL
env variableは意味をなすファイルの場所を指定します(prisma
フォルダ):DATABASE_URL="file:dev.db"
Prismaは我々がアクセスできるようにする.env
変数env()
関数は.schema
ファイル.あなたが開くことによってその使用法を見ることができますprisma.schema
とチェックアウトurl
属性datasource
ブロック.データモデルの定義
様々な種類のブロックがあります
.schema
異なることをして、異なるオプションのトンを持っているファイル.簡単に設定しますUser
このチュートリアルの目的のためのモデル.model User {
id Int @id @default(autoincrement())
firstName String
lastName String
email String
}
In a future article we'll dive deeper into the contents of this file and how to model out your data
これはPRISMA用のユーザテーブルを定義していますので、データとやりとりできるようなniceタイプのクライアントを生成する方法を知っています.現在データベースは空ですが、実際にそのテーブルを作成するためにスキーマをデータベースにプッシュする必要があります.(このコマンドは
Prisma Client
スキーマを押した後prisma db push
を実行した後、我々のテーブルを使用して作成されたことを確認することができます
Prisma Studio
. このコマンドを実行してスタジオを開くprisma studio
これで窓を開けなければならないhttp://localhost:5555 そして、このように見える.あなたがクリックするならば
User
モデルを使用すると、データベーステーブルのnice表ビューを参照して、テーブルに行を追加するオプションを指定できます.かなり甘い!このツールは間違いなくあなたのデータとの作業で来る.我々のデータをモデル化した今、モデルで利用可能なモデルは、我々のデータソースを設定し、クライアントが生成、それを使用するようにしましょう!
Prismaクライアント
The
Prisma Client
がデフォルトで生成されますnode_modules
フォルダ下@prisma/client
. を開始するにはmain.ts
. Prismaクライアントのインポートとインスタンス化.import { PrismaClient } from '@prisma/client'
const prisma = new PrismaClient()
async function main() {}
main()
.catch( e => { throw e })
.finally( async () => await prisma.$disconnect() )
それで、これは何をしますか?これはPrismaClient
PRISMAによって生成されたクラスは、あなたがそれを与えたモデル定義のオフに基づきました.たった今main()
関数は何もしません.これは我々のデータと対話するコードを追加するところです.終わりの作品は重要です.Prismaが開き、自動的に接続を処理しますが、アプリケーションのクローズまたは再読み込み時に切断する必要があることを伝える必要があります.そうでない場合、接続は、アプリケーションが起動し、手動で切断するまで生きて滞在するたびに生成されます.
アプリケーションを実行しようとするとエラーが発生した場合、
db push
. 先へ進んで、次のコマンドを実行して、Prismaクライアントを生成して、もう一度試してください.prisma generate
データベースのクエリ
我々は今、いくつかのデータを再生を開始することができます!あなたの
main()
関数は、users
我々のデータベースで.async function main() {
const users = await prisma.user.findMany();
console.log(JSON.stringify(users));
}
あなたはそれを入力するように、素晴らしいintellisenseをチェック!Prismaは、クライアントのための私たちの生活を容易にするためのタイプと定義のセットを生成しました.かなり素晴らしい!これを実行した後に気づくかもしれませんが、結果は空です.それはまだデータがないからです!我々はそれを修正することができます
Prisma Studio
ユーザーテーブルにレコードを追加します.コードを再度実行すると、コンソールに出力されたユーザーが表示されます.
ラッピング
これはちょうど始まりです、Prismaはとても多くのための特徴と可能性のそのような豊かなセットを持ちます.今後のシリーズでは、すべてのプリママを提供しているデザインパターン、カスタム拡張機能、および詳細を深く見ている!それで、あなたがこれを楽しむならば、Prismaはあなたの関心をおおいています.
私たちは、ほとんどの努力でこの記事のデータベースに接続するために、typescript、SQLiteデータベース、およびデータベース全体のクライアントを持つPRISMAを設定できました.それは私にはかなり素晴らしいです.あなたが深く掘って、我々が話したもので拡大したいならば、チェックしてください
Prisma Client
ドキュメント.読書のおかげで、ハッピーコーディング!
Reference
この問題について(Prisma + TypesScriptプロジェクトの起動), 我々は、より多くの情報をここで見つけました https://dev.to/sabinthedev/starting-a-prisma-typescript-project-4c3gテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol