Goals
On this page, you will learn how to:
- Install the Prisma CLI
- Set up Prisma with a sandboxed demo database
- Read and write data using the Prisma Go client
Prisma 1 is currently in maintenance mode. We recommend to get started with Prisma 2 instead.
Install the Prisma CLI
The Prisma CLI is used for various Prisma workflows. You can install it using Homebrew or NPM:
brew tap prisma/prisma brew install prisma
Copy
Set up Prisma
To bootstrap the configuration files for your Prisma setup, run the prisma1 init
command in your GOPATH:
mkdir hello-world cd hello-world prisma1 init
Copy
After running prisma1 init
, the Prisma CLI prompts you to select how you want to deploy Prisma:
- Select Demo server from the list.
- When your browser opens, register with Prisma Cloud. This is needed because that's where the Demo server is hosted.
- Go back to your terminal.
Confirm the suggested values for the following questions with Return:
- The region where Prisma service should be hosted
- The name for Prisma service
- The stage for Prisma service
- Select Prisma Go Client to generate Prisma client for Golang.
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).generated/
: Contains the generated source files for the Prisma Go client.
Deploy Prisma
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:
prisma1 deploy
Copy
Congratulations, you have successfully deployed Prisma. You now have a free and hosted demo database (AWS Aurora) available in Prisma Cloud and are ready to use the Prisma client to read and write to it from your code.
View and edit your data in Prisma Admin
If you want to view and edit the data in your database, you can use Prisma Admin. To access Prisma Admin, you need to append /_admin
to your Prisma endpoint, for example: https://eu1.prisma.sh/alice/helloworld/dev/_admin
.
Prepare Go application
touch index.go
Copy
You'll be using dep for dependency management in this tutorial. Run the following command to create the required setup:
dep init
Copy
Great, you're now ready to write some code and talk to your database programmatically!
Read and write data using the Prisma client
Add the following code in index.go
:
package main import ( "context" "fmt" prisma "hello-world/generated/prisma-client" ) func main() { client := prisma.New(nil) ctx := context.TODO() // Create a new user name := "Alice" newUser, err := client.CreateUser(prisma.UserCreateInput{ Name: name, }).Exec(ctx) if err != nil { panic(err) } fmt.Printf("Created new user: %+v\n", newUser) users, err := client.Users(nil).Exec(ctx) if err != nil { panic(err) } fmt.Printf("%+v\n", users) }
Copy
Before executing the script, you need to ensure all dependencies are available. Run the following command:
dep ensure
Copy
Now execute the script with the following command:
go run index.go
Copy
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:
id := "__USER_ID__" userById, err := client.User(prisma.UserWhereUniqueInput{ ID: &id, }).Exec(ctx)
Copy
In some snippets, you need to replace the
__USER__ID__
placeholder with the ID of an actual user.