docs/1.18/get-started/01-setting-up-prisma-demo-server-a001.mdx
import QueryChooser from 'components/Markdown/QueryChooser' import Collapse from 'components/Markdown/Collapse' import Code from 'components/Markdown/Code'
export const meta = { title: 'Setting up Prisma', position: 1, gettingStartedOrder: 3, gettingStartedTitle: 'Demo database', nextText: 'Great work! 👏 Move on to learn how you can change your datamodel and regenerate your Prisma client.', technology: 'node', technologyOrder: 2, articleGroup: 'Setting up Prisma', }
On this page, you will learn how to:
The Prisma CLI is used for various Prisma workflows. You can install it using Homebrew or NPM:
<Code languages={["Homebrew", "NPM"]}>
brew tap prisma/prisma
brew install prisma
npm install -g prisma
To bootstrap the configuration files for your Prisma setup, create a new directory and initalize it using the prisma init command:
mkdir hello-world
cd hello-world
prisma init
After running prisma init, the Prisma CLI prompts you to select how you want to deploy Prisma:
prisma.yml: The root configuration file for your Prisma setup.datamodel.prisma: Specifies the datamodel for your application that will be mapped to the database (it basically defines your database schema).The interactive wizard created the minimal Prisma configuration based on a hosted demo database: prisma.yml and datamodel.prisma. Prisma now needs to be deployed so you can use the Prisma API:
prisma deploy
Congratulations, you have successfully deployed Prisma. You can now start using the Prisma client to talk to your database from code.
Run the following command to create an empty Node script:
touch index.js
Next, initialize an empty NPM project in the current directory and install the required dependencies:
npm init -y
npm install --save prisma-client-lib [email protected]
Add the following code in index.js and save it afterwards:
const { prisma } = require('./generated/prisma')
// A `main` function so that we can use async/await
async function main() {
// Create a new user called `Alice`
const newUser = await prisma.createUser({ name: 'Alice' })
console.log(`Created new user: ${newUser.name} (ID: ${newUser.id})`)
// Read all users from the database and print them to the console
const allUsers = await prisma.users()
console.log(allUsers)
}
main().catch(e => console.error(e))
Execute the script with the following command:
node index.js
Whenever you run the script with that command, a new user record is created in the demo database (because of the call to createUser).
Feel free to play around with the Prisma client API and try out some of the following operations by adding the following code snippets to the file (at the end of the main function) and re-executing the script:
<QueryChooser titles={["Fetch single user", "Filter user list", "Update a user's name", "Delete user"]}>
const user = await prisma
.user({ id: '__USER_ID__' })
const usersCalledAlice = await prisma
.users({
where: {
name: 'Alice'
}
})
const updatedUser = await prisma
.updateUser({
where: { id: '__USER_ID__' },
data: { name: 'Bob' }
})
const deletedUser = await prisma
.deleteUser({ id: '__USER_ID__' })
In some snippets, you need to replace the
__USER__ID__placeholder with the ID of an actual user.