يك لايه داده است كه جايگزين ابزارهاي object-relational mapping (ORM) قبلي در برنامه شما است. Prisma با ارائه پشتيباني هم براي سرور مجازي ساخت GraphQL و هم API هاي REST ، دسترسي به پايگاه داده را با تمركز بر ايمني نوع (type safety)، ساده مي كند و جا به جايي هاي اعلامي ديتابيس را امكان پذير مي نمايد. ايمني نوع به كاهش خطاها و ناسازگاري هاي احتمالي كد كمك مي كند ، در حالي كه جا به جايي اعلامي پايگاه داده به شما امكان مي دهد تا مدل داده هاي خود را در كنترل نسخه ذخيره كنيد. اين ويژگي ها به توسعه دهندگان كمك مي كند تا زمان متمركز خود را براي تنظيم دسترسي به پايگاه داده ، جا به جايي و گردش كار مديريت داده ها كاهش دهند.
مي توانيد سرور مجازي Prisma را به چند روش مستقر كنيد تا بعنوان پروكسي براي پايگاه داده شما عمل كند ، و آن را از راه دور يا محلي ميزباني كنيد. با استفاده از سرويس Prisma مي توانيد به داده هاي خود دسترسي پيدا كرده و با API GraphQL به بانك اطلاعاتي خود متصل شويد ، اين كار امكان عمليات زمان واقعي و امكان ايجاد، به روزرساني و حذف داده ها را فراهم ميكند. GraphQL يك زبان پرس و جو براي API ها است كه به كاربران امكان مي دهد براي دسترسي به اطلاعات دقيق مورد نياز از سرور مجازي خود ، پرس و جوهايي ارسال كنند. سرور مجازي Prisma يك جزء مستقل است كه در بانك اطلاعاتي شما قرار دارد.
در اين آموزش شما به صورت دستي يك سرور مجازي Prisma را در Ubuntu 18.04 نصب كرده و يك پرس و جوي تستي GraphQL را در playground GraphQL اجرا مي كنيد. در حالي كه Prisma را روي سرور مجازي راه دور خود اجرا مي كنيد ، هاست كد ستاپ و توسعه محلي Prisma هستيد – جايي كه در واقع برنامه خود را ايجاد خواهيد كرد . با اجراي دستي نصب ، درك عميق تري از زيرساخت هاي اساسي ستاپ خود خواهيد داشت.
در حالي كه اين آموزش مراحل دستي استقرار Prisma در سرور مجازي اوبونتو 18.04 را در بر مي گيرد ، مي توانيد با دنبال كردن اين لينك در سايت Prisma اين كار را به صورت خودكار تر با دستگاه Docker انجام دهيد.
توجه: تنظيمات شرح داده شده در اين بخش شامل ويژگي هايي نيست كه شما معمولاً از سرور مجازي هاي آماده توليد مانند پشتيبان گيري خودكار و failover فعال انتظار داريد.
پيش نيازها
براي تكميل اين آموزش ، به موارد زير نياز داريد:
⦁ سرور مجازي Ubuntu 18.04 كه با دنبال كردن راهنماي اوليه تنظيم سرور مجازي راه اندازي شده باشد، شامل كاربر غير ريشه و امتيازات sudo باشد.
⦁ Docker نصب شده روي سرور مجازي شما. مي توانيد با دنبال كردن مرحله 1 آموزش نصب Docker در اوبونتو 18.04 ، به اين هدف برسيد.
⦁ Docker Compose نصب شده باشد. در مرحله 1 نصب Docker Compose مي توانيد دستورالعمل هاي لازم را براي اين كار بيابيد.
⦁ Node.js روي سرور مجازي شما نصب شده باشد. مي توانيد با دنبال كردن بخش PPA آموزش نصب Node.js اين كار را انجام دهيد.
مرحله 1 – راه اندازي سرور مجازي Prisma
Prisma CLI ابزار اوليه اي است كه براي استقرار و مديريت خدمات Prisma شما استفاده مي شود. براي شروع خدمات بايد زيرساخت هاي لازم را تنظيم كنيد كه شامل سرور مجازي Prisma و يك بانك اطلاعاتي براي اتصال به آن مي باشد.
Docker Compose به شما امكان مي دهد برنامه هاي چند كانتينري را مديريت و اجرا كنيد. شما مي توانيد از آن براي تنظيم زيرساخت هاي مورد نياز سرويس Prisma استفاده كنيد.
با ايجاد فايل docker-compose.yml شروع به كار مي كنيد تا پيكربندي سرويس Prisma را در سرور مجازي خود ذخيره كنيد. از اين فايل براي چرخش خودكار Prisma ، يك پايگاه داده مرتبط و پيكربندي جزئيات لازم ، همه در يك مرحله استفاده خواهيد كرد. پس از چرخش فايل با Docker Compose ، رمزهاي عبور داده هاي شما را پيكربندي مي كند ، بنابراين حتماً كلمات عبور را براي مديريتAPIsecret و MYSQL_ROOT_PASSWORD با مقادير ايمن جايگزين كنيد. دستور زير را براي ايجاد و ويرايش فايل docker-compose.yml اجرا كنيد:
⦁ $ sudo nano docker-compose.yml
⦁
براي تعريف خدمات و حجم هاي مربوط به تنظيم Prisma ، محتواي زير را به فايل اضافه كنيد:
docker-compose.yml
version: “3”
services:
prisma:
image: prismagraphql/prisma:1.20
restart: always
ports:
– “4466:4466”
environment:
PRISMA_CONFIG: |
port: 4466
managementApiSecret: my-secret
databases:
default:
connector: mysql
host: mysql
port: 3306
user: root
password: prisma
migrations: true
mysql:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: prisma
volumes:
– mysql:/var/lib/mysql
volumes:
mysql:
اين پيكربندي موارد زير را انجام مي دهد:
• دو سرويس راه اندازي مي كند: prisma-db و db.
• آخرين نسخه از Prisma را واكشي مي كند. در اين مقاله ، همان Prisma 1.20 است.
• پورت هايي را تنظيم مي كند كه Prisma در دسترس خواهد بود و تمام اعتبارات را براي اتصال به پايگاه داده MySQL در بخش ديتابيس ها مشخص مي كند.
فايل docker-compose.yml ، managementApiSecret را تنظيم مي كند ، كه از دسترسي ديگران به اطلاعات شما به واسطه دانستن نقطه پاياني جلوگيري مي كند. اگر از اين آموزش براي هر چيزي به جز استقرار تستي استفاده مي كنيد ، بايد managementApiSecret را به چيزي ايمن تر تغيير دهيد. وقتي اين كار را كرديد ، حتماً آن را به خاطر بسپاريد كه بعداً بتوانيد در طي مراحل prisma init وارد آن شويد.
اين فايل همچنين تصوير MySQL Docker را به در داخل خود قرار ميدهد و اعتبارات آن را نيز تعيين مي كند. براي اهداف اين آموزش ، اين فايل Docker Compose يك تصوير MySQL را مي چرخاند ، اما مي توانيد از PostgreSQL با Prisma نيز استفاده كنيد. هر دو تصوير Docker در Docker hub موجود است:
⦁ MySQL
⦁ PostgreSQL.
فايل را ذخيره كنيد و از آن خارج شويد.
اكنون كه تمام جزئيات را ذخيره كرده ايد ، مي توانيد كانتينرهاي Docker را شروع كنيد. دستور -d به كانتينرها مي گويد كه در حالت جداگانه اجرا شوند ، به اين معني كه در پس زمينه اجرا مي شوند:
⦁ $ sudo docker-compose up -d
⦁
با اين كار تصاوير Docker هم براي Prisma و هم براي mysql دريافت مي شوند. با دستور زير مي توانيد تأييد كنيد كه كانتينرهاي Docker اجرا مي شوند:
⦁ $ sudo docker ps
⦁
خروجي را مشاهده خواهيد كرد كه شبيه به اين است:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
24f4dd6222b1 prismagraphql/prisma:1.12 “/bin/sh -c /app/sta…” 15 seconds ago Up 1 second 0.0.0.0:4466->4466/tcp root_prisma_1
d8cc3a393a9f mysql:5.7 “docker-entrypoint.s…” 15 seconds ago Up 13 seconds 3306/tcp root_mysql_1
با تنظيم سرور مجازي Prisma و پايگاه داده خود ، اكنون آماده كار به صورت محلي براي استقرار سرويس Prisma هستيد.
مرحله 2 – نصب Prisma بصورت محلي
سرور مجازي Prisma محيط هاي زمان اجرا را براي خدمات Prisma شما فراهم مي كند. اكنون كه سرور مجازي Prisma خود را راه اندازي كرده ايد ، مي توانيد سرويس Prisma را مستقر كنيد. اين مراحل را به صورت محلي و نه بر روي سرور مجازي خود اجرا خواهيد كرد.
براي شروع ، يك پوشه جداگانه ايجاد كنيد تا همه فايل هاي Prisma را شامل شود:
⦁ $ mkdir prisma
⦁
سپس به آن پوشه برويد:
⦁ $ cd prisma
⦁
اگر از Maغير مجاز مي باشد استفاده مي كنيد ، مي توانيد Prisma را با Homebrew نصب كنيد. براي اين كار ، دستور زير را براي اضافه كردن مخزن Prisma اجرا كنيد:
⦁ $ brew tap prisma/prisma
⦁
سپس مي توانيد Prisma را با دستور زير نصب كنيد:
⦁ $ brew install prisma
⦁
يا با npm نصب كنيد:
⦁ $ npm install -g prisma
⦁
با نصب Prisma به صورت محلي ، آماده هستيد تا سرويس جديد Prisma را راه اندازي كنيد.
مرحله 3 – ايجاد پيكربندي براي يك سرويس جديد Prisma
پس از نصب ، مي توانيد از prisma init براي ايجاد ساختار فايل براي يك API پايگاه داده جديد Prisma استفاده كنيد ، كه فايلهاي لازم براي ساختن برنامه شما را با Prisma توليد مي كند. نقطه پاياني شما به طور خودكار در فايل prisma.yml خواهد بود و datamodel.prisma از قبل يك مدل داده نمونه را در اختيار شما خواهد داشت كه مي توانيد در مرحله بعد پرس و جو كنيد. datamodel به عنوان پايه API Prisma شما عمل مي كند و الگوي برنامه را مشخص مي كند. در اين مرحله ، شما فقط فايل ها و مدل داده نمونه را ايجاد مي كنيد. تا زماني كه بعداً در اين مرحله prisma deploy را اجرا كنيد، تغييراتي انجام نخواهيد داد.
اكنون مي توانيد دستور زير را بصورت محلي اجرا كنيد تا ساختار فايل جديد ايجاد شود:
⦁ $ prisma init hello-world
⦁
پس از اجراي اين دستور ، اعلان تعاملي را مشاهده خواهيد كرد. وقتي از شما پرسيده شد ، Use other server را انتخاب كرده و ENTER را فشار دهيد:
Output
Set up a new Prisma server or deploy to an existing server?
You can set up Prisma for local development (based on docker-compose)
Use existing database Connect to existing database
Create new database Set up a local database using Docker
Or deploy to an existing Prisma server:
Demo server Hosted demo environment incl. database (requires login)
❯ Use other server Manually provide endpoint of a running Prisma server
سپس نقطه پاياني سرور مجازي خود را كه به عنوان سرور مجازي Prisma عمل مي كند ارائه مي دهيد. چيزي مانند: http: // SERVER_IP_ADDRESS: 4466. به نظر مي رسد. مهم است كه نقطه پاياني با http (يا https) شروع شود و شماره پورت را نشان دهد.
Output
Enter the endpoint of your Prisma server http://SERVER_IP_ADDRESS:4466
براي سري نگه داشتن مديريت API ، عبارت يا رمز عبوري را كه قبلاً در فايل پيكربندي اعلام كرده ايد وارد كنيد:
Output
Enter the management API secret my-secret
براي گزينه هاي بعدي مي توانيد با فشار دادن ENTER براي نام سرويس و مرحله خدمات ، متغيرهاي پيش فرض را انتخاب كنيد:
Output
Choose a name for your service hello-world
Choose a name for your stage dev
همچنين براي كلاينت Prisma يك انتخاب روي يك زبان برنامه نويسي به شما داده مي شود. در اين حالت مي توانيد زبان دلخواه خود را انتخاب كنيد. مي توانيد اطلاعات بيشتري در مورد كلاينت را در اين لينك بخوانيد.
Output
Select the programming language for the generated Prisma client (Use arrow keys)
❯ Prisma TypeScript Client
Prisma Flow Client
Prisma JavaScript Client
Prisma Go Client
Don’t generate
پس از تكميل اعلان ، خروجي زير را مشاهده مي كنيد كه انتخاب هاي شما را تأييد مي كند:
Output
Created 3 new files:
prisma.yml Prisma service definition
datamodel.prisma GraphQL SDL-based datamodel (foundation for database)
.env Env file including PRISMA_API_MANAGEMENT_SECRET
Next steps:
1. Open folder: cd hello-world
2. Deploy your Prisma service: prisma deploy
3. Read more about deploying services:
http://bit.ly/prisma-deploy-services
به ديركتوري HELLO-WORLD برويد:
⦁ $ cd hello-world
⦁
اين تغييرات در سرور مجازي خود را با prisma deploy همگام سازي كنيد. اين كار اطلاعات را از دستگاه محلي شما به سرور مجازي Prisma مي فرستد و سرويس Prisma را روي سرور مجازي Prisma ايجاد مي كند:
⦁ $ prisma deploy
⦁
توجه: اجراي مجدد prisma دوباره خدمات Prisma را به روز مي كند.
خروجي شما چيزي شبيه به اين خواهد بود:
Output
Creating stage dev for service hello-world
Deploying service `hello-world` to stage ‘dev’ to server ‘default’ 468ms
Changes:
User (Type)
+ Created type `User`
+ Created field `id` of type `GraphQLID!`
+ Created field `name` of type `String!`
+ Created field `updatedAt` of type `DateTime!`
+ Created field `createdAt` of type `DateTime!`
Applying changes 716ms
Your Prisma GraphQL database endpoint is live:
HTTP: http://SERVER_IP_ADDRESS:4466/hello-world/dev
WS: ws://SERVER_IP_ADDRESS:4466/hello-world/dev
خروجي نشان مي دهد كه Prisma پايگاه داده شما را مطابق با datamodel (كه در مرحله prisma init ايجاد شده ) با يك كاربر TYPE به روز كرده است. Type ها قسمت اصلي يك پايگاه داده هستند. آنها يك آيتم از برنامه شما را نشان مي دهند ، و هر نوع شامل چندين فيلد است. براي Datamodel فيلدهاي مرتبط كه كاربر را توصيف مي كنند عبارتند از: شناسه كاربر ، نام ، زمان ايجاد و زمان بروزرساني آنها.
اگر در اين مرحله به مشكلاتي برخورد كرديد و خروجي ديگري را دريافت كرديد ، دوبار بررسي كنيد كه در اعلان تعاملي به درستي همه فيلدها را وارد نموده ايد. مي توانيد با مرور مطالب فايل prisma.yml اين كار را انجام دهيد.
با اجراي سرويس Prisma ، مي توانيد به دو نقطه پاياني مختلف وصل شويد:
⦁ رابط مديريت ، موجود در http://SERVER_IP_ADDRESS:4466/management ، كه در آن مي توانيد خدمات Prisma را مديريت و استقرار دهيد.
⦁ APP GraphQL براي سرويس Prisma شما ، كه در آدرس http://SERVER_IP_ADDRESS:4466/hello-world/dev موجود است.
شما با موفقيت سرور مجازي Prisma خود را راهاندازي و مستقر كرديد. اكنون مي توانيد پرس و جوها و جهش ها را در GraphQL جستجو كنيد.
مرحله 4 – اجراي يك پرس و جوي مثال
براي جستجوي يكي ديگر از موارد استفاده Prisma ، مي توانيد با ابزار playground GraphQL كه يك محيط توسعه يكپارچه GraphQL منبع باز (IDE) روي سرور مجازي شما است ، اين كار را آزمايش كنيد. براي دستيابي به آن ، از نقطه پاياني مرورگر خود در از مرحله قبلي بازديد كنيد:
http://SERVER_IP_ADDRESS:4466/hello-world/dev
جهش (mutation ) يك اصطلاح GraphQL است كه روشي براي اصلاح – ايجاد ، به روزرساني يا حذف (CRUD) – داده هاي موجود در پس زمينه از طريق GraphQL را توصيف مي كند. براي ايجاد يك كاربر جديد و كشف قابليت ها مي توانيد جهشي ارسال كنيد. براي اين كار ، جهش زير را در سمت چپ صفحه اجرا كنيد:
mutation {
createUser(data: { name: “Alice” }) {
id
name
}
}
پس از فشردن دكمه play ، نتايج را در سمت راست صفحه مشاهده خواهيد كرد.
پس از آن ، اگر مي خواهيد با استفاده از ستون ID در ديتابيس به جستجوي كاربر بپردازيد ، مي توانيد پرس و جو زير را اجرا كنيد:
query {
user(where: { id: “cjkar2d62000k0847xuh4g70o” }) {
id
name
}
}
اكنون يك سرور مجازي Prisma و سرويسي فعال و در حال اجرا در سرور مجازي خود داريد و پرس و جوهاي تستي را در IDE GraphQL اجرا كرده ايد.
نتيجه
شما يك ستاپ Prisma در سرور مجازي خود داريد. مي توانيد موارد استفاده بيشتر از Prisma و مراحل بعدي را در راهنماي شروع به كار مشاهده كنيد يا ويژگي هاي Prisma را كه در Doc Prisma قرار داده شده است ، جستجو كنيد. پس از اتمام مراحل كلي در اين آموزش ، گزينه هاي مختلفي براي تأييد اتصال خود به ديتابيس داريد ، يكي از احتمالات استفاده از كلاينت Prisma ميباشد.
از اين لينك ها زير مي توانيد آمورش هاي بيشتري براي لينوكس پيدا كنيد :
پارامترهاي پيش فرض در جاوا اسكريپت – اجراي چندين نسخه PHP بر روي يك سرور Debian 10
نحوه راه اندازي يك پروژه React با برنامه React – نصب و ايمن سازي phpMyAdmin در اوبونتو 18
پيكربندي يك تاييد اعتبار مجاز(CA) در CentOS 8 – تنظيم برنامه Node.js براي توليد در CentOS 7
نصب MariaDB در اوبونتو 18.04 – ايمن كردن Apache با Let’s Encrypt در Debian 10
نحوه نصب Node.js در CentOS 8 – بازنويسي URL را با mod_rewrite براي Apache در Debian 10
راه اندازي فايروال با استفاده از firewalld در CentOS 8 – نصب وب سرور Apache در Debian 10
اضافه كردن و حذف كاربران در CentOS 8 – نصب Apache Tomcat 9 در Debian 10
نصب و استفاده از PostgreSQL در CentOS 8 – راه اندازي سرور اوليه با Debian 10
نصب MariaDB در CentOS 8 – چگونه با JSX عناصر واقعي ايجاد كنيم
نصب و پيكربندي VNC در Debian 10 – استفاده از سرور از راه دور Docker
نصب و ايمن سازي Grafana در اوبونتو 18 – نحوه نصب Git در CentOS 8
نصب Git در Debian 10 – نصب و پيكربندي Zabbix براي رديابي ايمن سرورهاي
نحوه نصب Node.js در Debian 10 – نصب وب سرور Apache در CentOS 7
نحوه نصب Webmin در Debian 10 – نصب و پيكربندي Zabbix براي رديابي ايمن سرور
نصب وردپرس با بانك اطلاعاتي در اوبونتو – ساخت و استقرار سرور GraphQL با Node.js و MongoDB
نصب پايتون 3 و تنظيم نويسي محلي maغير مجاز مي باشد – نصب و ايمن سازي phpMyAdmin با Nginx در سرور
نصب Nagios 4 و نظارت بر سرور اوبونتو 18 – نصب Python 3 و تنظيم يك محيط برنامه نويسي
نحوه نصب R بر روي Debian 10 – راه اندازي سرور Prisma روي اوبونتو 18.04
نصب و پيكربندي Laravel با LEMP در اوبونتو 18 – نصب و پيكربندي pgAdmin 4 در Server Mode
نصب Python 3 و تنظيم برنامه نويسي CentOS 8 – نصب Jitsi Meet در Ubuntu 18.04
كلمات كليدي خريد سرور
خريد vps – خريد سرور مجازي – خريد سرور – سرور هلند – فروش vps – سرور مجازي آمريكا – خريدvps – سرور مجازي هلند – فروش سرور مجازي – سرور آمريكا – vps – سرور مجازي انگليس – سرور مجازي آلمان – سرور مجازي كانادا – خريد vps آمريكا – خريد وي پي اس – سرور – خريد سرور مجازي هلند – vps خريد – سرور مجازي فرانسه – سرور مجازي هلند – خريد vps آمريكا – خريد سرور مجازي ارزان هلند – vps – خريد vps هلند – خريد سرور مجازي آمريكا – خريد vps فرانسه – تست vps – سرور مجازي تست – سرور مجازي ويندوز – ارزانترين vps – خريد وي پي اس – vps ارزان –
برچسبها:datamodel, Doc Prisma, IDE GraphQL, Prisma, Prisma 1.20