New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Database Connectors #1751

Open
sorenbs opened this Issue Jan 27, 2018 · 9 comments

Comments

Projects
None yet
9 participants
@sorenbs
Copy link
Member

sorenbs commented Jan 27, 2018

Connector Types

Prisma supports two kinds of database connectors:

  • Active connectors - manage and migrate the database schema
  • Passive connectors - read and write data only

A connector supports at least one of the following GraphQL flavours:

  • Relational
  • Document
  • Graph
  • Key/Value
  • Search
  • Time series
  • Analytical
  • In Memory

Contributing

The best way to ensure that a particular connector gets build is to contribute the following two things:

  1. Very concrete use case description.
  2. Initial suggestion for syntax for SDL and the generated GrpahQL API.

When we prioritise the connectors to build, community validation plays a big role, so the more you can contribute in the relevant Github issue the better.

Scalar Types

https://github.com/graphcool/prisma/issues/1753 maps out scalar types supported by each database and attempts to map to a common set of GraphQL Scalar Types.

We need to decide if Prisma should support db specific types in addition to the generic types. The MySQL types SMALLINT and INT both map to the GraphQL type Int, but we could also allow mapping them to the GraphQL types MySQL_SMALLINT and MySQL_INT respectively for added control.

Connectors

Relational

MySQL

Active:
Passive: ☑️

PostgreSQL

Active:
Passive: ☑️

Ms SQL

Active: ☑️
Passive: ☑️

Oracle

Active: ☑️
Passive: ☑️

CockroachDB

Active: ☑️
Passive: ☑️

Document

MongoDB

Active: ☑️
Passive: ☑️

ArangoDB

Active: ☑️
Passive: ☑️

Graph

Neo4j

Active: ☑️
Passive: ☑️

Dgraph

Active: ☑️
Passive: ☑️

Neptune

Active: ☑️
Passive: ☑️

Analytical

Druid

Active: ☑️
Passive: ☑️

Time series

Influx

Active: ☑️
Passive: ☑️

Timescale

Active: ☑️
Passive: ☑️

Key/Value

DynamoDB

Active: ☑️
Passive: ☑️

Cassandra

Active: ☑️
Passive: ☑️

Search

Elastic Search

Active: ☑️
Passive: ☑️

In Memory

Redis

Active: ☑️
Passive: ☑️

File Based

SQLite

Active: ☑️
Passive: ☑️

@pranasblk

This comment has been minimized.

Copy link

pranasblk commented Feb 15, 2018

Would you consider "Apache Ignite" ?

@nharlow89

This comment has been minimized.

Copy link

nharlow89 commented May 17, 2018

Any chance of a file-based db such as an sqlite connector?

@sorenbs

This comment has been minimized.

Copy link
Member Author

sorenbs commented May 19, 2018

@nharlow89 - that's a great idea. Could you open a separate issue and describe your use case in as much detail as possible? Thanks!

@cmcinroy

This comment has been minimized.

Copy link

cmcinroy commented May 31, 2018

@sorenbs could we update the original post to have the link for the passive MySQL connector point here:
#2506
(EDIT)
... and this link for the passive Postgres connector:
https://github.com/graphcool/prisma/issues/1749

... just to reflect how the related issues have since evolved?

@mnlbox

This comment has been minimized.

Copy link

mnlbox commented Jun 18, 2018

+1 for SQLite

@paul-go

This comment has been minimized.

Copy link

paul-go commented Jun 26, 2018

Another +1 for SQLite

@kevineger

This comment has been minimized.

Copy link

kevineger commented Nov 8, 2018

Any thoughts on Cosmos DB? I saw it referenced in this older issue.

@stale

This comment has been minimized.

Copy link

stale bot commented Jan 8, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 10 days if no further activity occurs. Thank you for your contributions.

@stale stale bot added the status/stale label Jan 8, 2019

@stale stale bot removed the status/stale label Jan 9, 2019

@stale

This comment has been minimized.

Copy link

stale bot commented Feb 23, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 10 days if no further activity occurs. Thank you for your contributions.

@stale stale bot added the status/stale label Feb 23, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment