Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 9 additions & 94 deletions content/05-more/07-roadmap.mdx
Original file line number Diff line number Diff line change
@@ -1,112 +1,27 @@
---
title: 'Roadmap'
metaTitle: 'Roadmap – Future Prisma Features'
metaDescription: 'This page gives an overview of the features that are on the Prisma roadmap.'
metaTitle: 'Prisma Public Roadmap – See what we are working on next'
metaDescription: 'Want to know what we are up to? Our roadmap provides an overview of our priorities and where we are planning to take Prisma next.'
---

## Overview

The roadmap reflects the _current plan_ for features that will be supported by Prisma in th future. The timeline for the listed features is non-committing since priorities might change and plans might need to be adjusted.
Our roadmap helps us share our current priorities: what we are currently working on and what we are planning to work on in the near term. This reflects our _current plans_ today, and the content is subject to change at any time. Actual results and plans may differ as a result of changing our product strategy or reacting to demands from our user base.

The roadmap will be updated monthly to reflect any changes in prioritization.
## What's next?

Note that the roadmap only lists "larger" features which require a significant engineering effort. For smaller features, please refer to the GitHub issues in the respective repo. You can get an overview of the features that are being worked in the current sprint by filtering for the `CURRENT-MILESTONE` label.
### Modern database access with Prisma Client

## What's next?
[Prisma Client](../reference/tools-and-interfaces/prisma-client/api) is a modern database access library for Node.js and TypeScript. It is an alternative to traditional ORMs and SQL query builders to read and write data in your database.

Prisma Client is currently in beta, and we are working towards a General Availability (GA) release.

### Schema migrations with Prisma Migrate

[Prisma Migrate](../reference/tools-and-interfaces/prisma-migrate) is a declarative database migration system. It lets you model your database via the Prisma schema and provides a CLI to map the Prisma schema to your database by generating the required SQL migration statements.

Prisma Migrate is already available as an experimental feature.

### Visual data management with Prisma Studio

Prisma Studio is a GUI for your database. It lets you view and edit data that's currently stored in the database.

You can manipulate individual records and easily configure relations by connecting or disconnecting them with other records (which are referenced via foreign keys).

Prisma Studio features a _table_- and a _tree_-view. The tree-view view is especially helpful when looking at deeply nested data.

Prisma Studio is already available as an _experimental_ feature.

### JSON support

Some relational databases like PostgeSQL and MySQL have a `JSON` data type to store JSON text that follows the [RFC 7159](https://tools.ietf.org/html/rfc7159) spec.

## Future features

The features in this section are not ordered by priority. Because a feature comes early the list, it doesn't mean that it will be released next.

### Aggregations in Prisma Client

Prisma Client currently doesn't provide an API for aggregating data. In the future, various aggregation features that are commonly available in a database will be exposed in the Prisma Client API as well, for example:

- Group By Primary ID/Key
- Group By Scalar
- Group By Expression
- Avg
- Median
- Max
- Min
- Count
- Sum
- Count Distinct
- Random

### Stored procedures

Stored procedures let you implement and invoke custom logic in your database.

### Phrase and fuzzy full text Search in Prisma Client

Search database rows for a certain phrase, either in the exact or in a slightly modified ("fuzzy") version.

### SQL Views

SQL views are "virtual" tables. As opposed to a "real" table (that was creatd by a `CREATE TABLE` statement), a view is not physically materialized. Views are only materialized when they're referenced in a query.

### Native database types

Prisma currently only support a limited set of scalar types in the Prisma schema).

However, you can still make full use of the types that are available in your database by configuring them manually and then [introspecting](../reference/tools-and-interfaces/introspection) your database schema. Prisma will map the type to the a type that is currently supported in the Prisma schema, but when querying the database the actual database type will be used.

### Embedded types

Embedded types let you attach structured data to a model. This data is typically stored physically next to the model data. As examples, in PostgreSQL, this can be implemented via the `JSON` type, in MongoDB, these embedded types correspond to embedded documents.

### Prisma SDK

Prisma provides a lot of functionality that can be consumed through various tools (e.g. Prisma Migrate). Sometimes it can be useful though to programmatically access certain functionality and bypass the extra layer of tooling. An example for such a scenario might be when you want to script a specific migration workflow in a CI/CD environment.

For these cases, Prisma will introduce an SDK that exposes a programmatic API for the features in the Prisma tools.

### Prisma Client in other languages

Prisma currently only supports a single generator called `prisma-client-js`. In the future, Prisma Client will be supported in other languages as well, e.g.:

- Go
- Python
- Elixir
- Scala
- ...

### Custom generators

Prisma currently only supports a single generator called `prisma-client-js`. In the future, Prisma will expose an interface for developers to write custom generators based for the Prisma schema.

### Database connectors

Prisma currently supports PostgreSQL, MySQL and SQLite databases as data sources. In the future, Prisma will support other databases, e.g.:

- MongoDB
- DynamoDB
- FaunaDB
- Neo4j
- Reddis
- ...

### Custom datasources

Prisma currently supports PostgreSQL, MySQL and SQLite databases as data sources. In the future, it will be possible to write connectors for any data source. These data sources can be anything with an interface for data storage and/or retrieval.
Some relational databases like PostgreSQL and MySQL have a `JSON` data type to store JSON text that follows the [RFC 7159](https://tools.ietf.org/html/rfc7159) spec.