成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

為什么你要考慮使用Prisma

開源
Prisma是一個開源的數據庫工具鏈項目,幫助開發人員更快地構建應用程序并減少錯誤,支持PostgreSQL、MySQL、MongoDB、SQL Server和SQLite。

Prisma正迅速成為我的首選ORM框架,這是有原因的。在我們創建一個web項目時,設置鏈接數據庫一直是一項比較繁瑣的任務。雖然ORM已經存在了一段時間,并且在大多數情況下已經簡化了這個過程。然而,它們似乎總是在某個方面有所欠缺。

對于一個開發人員來說,每一個ORM框架,通常都有一些開發人員希望它能做得更好一點。但對我來說,它這個設計模式紿我帶來了快速查看和編輯數據的能力。Prisma為我解決這些問題的同時也解決了一些我不知道的問題。

什么是Prisma

Prisma稱自己為下一代 Node.js、TypeScript、Go 的數據庫 ORM框架

Prisma是一個開源的數據庫工具鏈項目,幫助開發人員更快地構建應用程序并減少錯誤,支持PostgreSQL、MySQL、MongoDB、SQL Server和SQLite。

Prisma Schema

Prisma的核心是通過Primsa Schema文件來定義數據模型。它是用一種叫做PSL(Prisma Schema Language)的屬性語言編寫的,這需要幾分鐘時間來熟悉。Schema文件主要有三個主要組成部分。首先是你的數據源datasource,這個配置數據庫的URL和數據庫類型的地方。在這種情況下,provider用來表示使用的數據庫的類型。如下所示:

datasource db {
url = env("DATABASE_URL")
provider = "postgresql"
}

下一個部分是生成器(Generator)字段。這個字段指定了應該根據數據模型生成什么客戶端。這個功能就是讓你如何使用Prisma生成的客戶端來CRUD。這些我們稍后會介紹,這一部分看起來像這樣:?

generator client {
provider = "prisma-client-js"
}

最后,我們要定義我們的應用模型數據模型(Data model)在數據庫中的字段 ,這將是這個文件的重點。在這里你創建你的應用模型和數據間的映射關系。這一部分也需要最長的時間來適應,然而,它看起來仍然會顯得很熟悉。PSL不是創建普通的JS對象,而是以一種不同的方式來格式化模型,但所有的字段都與你習慣的交互方式相同。下面這個就是一個用戶模型的例子:

model User {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
email String @unique
name String?
role Role @default(USER)
posts Post[]
}

這個用戶模型我們有一個有六個字段,"id "是一個整數,并有一個默認值且自增。還有一些標準的,其它的、唯一的類型屬性你可以在 官方文檔) 中探索。你的下一個問題可能是 "模型間的關聯關系是如何工作的?",幸好它們相當簡單易懂。下面是一個用戶發的帖子的模型。

model Post {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
published Boolean @default(false)
title String @db.VarChar(255)
author User? @relation(fields: [authorId], references: [id])
authorId Int?
}

這個關聯關系定義在帖子的作者字段中。意思非常簡單,author字段是一個用戶,它引用了用戶模型User。然后我們創建一個關聯關系,用貼子模型Post上的字段 "authorId "引用用戶模型User中的 "id "字段。最后一個要解決的大問題是使你的數據庫與你的定義的模型保持同步,Prisma通過Prisma Migrate做到這一點。這是一個簡單的命令行,可以將你的數據庫與你可能有的任何變化一起遷移,具體可參考 官方文檔的遷移功能。<a name="v8LM3"></a>。

CRUD

記住你的Prisma Schema文件中的生成器Generator部分,這里是你要使用的地方。你的Generator塊是Prisma用來決定如何建立其客戶端的東西。它的建立是為了對你的數據進行類型安全的查詢。這意味著查詢你查詢數據的操作函數將變得更加容易理解和使用。

const newUser = await prisma.user.create({
data: {
name: 'Alice',
email: 'alice@prisma.io',
},
})
const users = await prisma.user.findMany()

這是一個創建和查找用戶的例子。當為你的數據生成一個客戶端時,Prisma將方法添加到Prisma對象中,與你的數據完全相關。繼續以用戶和帖子為例,我們也將能夠做到這一點。

prisma.post.create()

如果要想進一步了解更多復雜的查詢操作,請查看這里。<a name="DrufO"></a>。

Prisma的好處

Introspection

圖片


這里至少有兩個特點讓我至少考慮它,對于任何項目,即使是那些我已經在使用不同的ORM的項目。Introspection是一項功能,它允許你使用你已經創建的數據庫來生成一個與你的數據庫相匹配的Prisma模式。因此,如果你有一個已經按你喜歡的方式設置的數據庫,但想嘗試Prisma,這個過程是無縫和簡單的。你的Prisma Schema文件已經生成,你可以立即開始使用Prisma。所有這些都在一個單一的命令中完成。

prisma db pull

Prisma Studio

圖片

Prisma還創建了一個本地的web客戶端,你可以隨時的改變或更新數據。Prisma Studio對于快速檢查數據或改變一些東西進行測試是非常好的。它可能不像PgAdmin或MySql Workbench那樣先進,但它仍然為大多數數據庫工作提供了足夠的選擇。我唯一不滿意的是,你不能像使用Sanity那樣定制外觀界面。

責任編輯:姜華 來源: 新鈦云服
相關推薦

2023-03-08 15:51:06

NixOS

2019-08-22 09:25:02

云計算云備份數據

2018-05-23 00:20:29

2015-07-28 14:22:09

BAT

2013-09-22 09:55:23

碼農程序員

2016-03-08 09:50:42

2022-12-26 00:25:06

2010-10-09 09:20:08

.NET

2020-06-23 14:09:49

枚舉JDK場景

2021-06-17 06:19:20

存儲SQL數據庫

2015-05-25 15:31:56

C語言學習和使用 C 語言

2018-02-08 10:47:19

存儲技術列存儲

2009-05-26 09:00:59

ScalaJava面向對象

2011-08-01 14:33:44

SQL

2023-09-21 16:17:48

數據驅動運營

2024-08-05 01:24:54

2014-04-25 10:05:42

OpenStack私有云公共云

2022-05-16 09:27:37

UbuntuUbuntu LTS

2022-01-10 13:10:11

DNS服務器系統運維

2015-08-06 10:14:15

造輪子facebook
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美国产日韩在线观看 | 一区二区福利视频 | 日本三级在线网站 | 国产亚洲一区二区在线观看 | 97伦理电影网 | 亚洲一区在线日韩在线深爱 | 欧美日韩电影免费观看 | 在线观看特色大片免费网站 | 日韩精品一区二区三区在线观看 | 欧美一级片免费看 | 国产成人小视频 | 成人精品网 | 日韩影院在线 | 久久精品亚洲 | 国产精品自产av一区二区三区 | 国产小视频自拍 | 国产精品片| 第四色播日韩第一页 | 在线观看亚洲一区二区 | 人成精品 | 国内av在线 | 久久久婷| 精品日韩一区二区 | 成人 在线| 精品国产乱码久久久久久图片 | 免费看色| 久热精品免费 | 久久99国产精一区二区三区 | 午夜国产羞羞视频免费网站 | 亚洲福利视频一区二区 | 在线观看中文字幕dvd播放 | 精品电影| 亚洲精品一二三 | 日韩欧美在线免费 | 国产在线小视频 | 亚洲国产精品人人爽夜夜爽 | 成人亚洲| 97精品国产97久久久久久免费 | 国产高清一区二区三区 | 男女视频免费 | 欧美激情久久久久久 |