Skip to content
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

Support Oracle DB #2853

Open
kanso-git opened this issue Jun 25, 2020 · 58 comments
Open

Support Oracle DB #2853

kanso-git opened this issue Jun 25, 2020 · 58 comments
Labels
domain/client Issue in the "Client" domain: Prisma Client, Prisma Studio etc. domain/schema Issue in the "Schema" domain: Prisma Schema, Introspection, Migrations etc. kind/feature A request for a new feature. topic: connector

Comments

@kanso-git
Copy link

Problem

Support to Oracle db

@pantharshit00 pantharshit00 added kind/feature A request for a new feature. topic: connector labels Jun 25, 2020
@kanso-git kanso-git changed the title Oracle db connector Prisma support to Oracle db Jun 25, 2020
@jeveloper
Copy link

+1

@YElyousfi
Copy link

YElyousfi commented Mar 1, 2021

I noticed that MSSQL is currently a preview feature for Prisma. Is there any timeline for Oracle support? This would greatly increase adoption by large companies.

@gerwinbrunner
Copy link

+1

2 similar comments
@Gnilherk
Copy link

+1

@nat-me
Copy link

nat-me commented Mar 22, 2021

+1

@janpio janpio changed the title Prisma support to Oracle db Support Oracle DB Apr 1, 2021
@janpio janpio added topic: database domain/schema Issue in the "Schema" domain: Prisma Schema, Introspection, Migrations etc. domain/client Issue in the "Client" domain: Prisma Client, Prisma Studio etc. labels Apr 1, 2021
@rizrmd
Copy link

rizrmd commented Jul 7, 2021

We need this support, and willing to pay for it. Can we setup bounty to accelerate this development ?

@joseviniciusnunes
Copy link

+1

1 similar comment
@chadelofson
Copy link

+1

@pimeys
Copy link
Contributor

pimeys commented Nov 30, 2021

The biggest problem I see is there's no Rust crate for Oracle that fits well to the current async/await ecosystem (that I know of). Of course we can do it ourselves as we did with SQL Server. The problem with Oracle are the legal issues of building a client from scratch. You can link to their C library with ffi and that is ok for them, but need a permission to do your own library.

The thing why I don't like binding to C from rust is the possibility of memory bugs that are really nasty to solve. So a good way to get this forward is to get some people to write a modern asynchronous Oracle crate for Rust. That's about 40% of the work, then it's about integration from there on.

@hinogi
Copy link

hinogi commented Dec 17, 2021

What about letting users use for example oracledb to make the connection on their own?

@rizrmd
Copy link

rizrmd commented Dec 18, 2021

There is MIT licensed crate that support executing SQL:
https://docs.rs/oci_rs/

Maybe we can wrap it with tokio ?
I might bite the bullet like you guys do with tiberius.

@hinogi
Copy link

hinogi commented Dec 18, 2021

Guess you then have to check what the Oracle Call Interface license is.

@rizrmd
Copy link

rizrmd commented Dec 18, 2021

Quick googling results:

OCILIB is apache licensed and I think it's been around for a while. It encapsulates OCI (Oracle Call Interface), so I think if we create this lib, we can license it similar to OCILIB.

@joseviniciusnunes
Copy link

I'm interested in helping, what are the steps to integrate the prism with this client made by oracle itself?

https://www.npmjs.com/package/oracledb

@rizrmd
Copy link

rizrmd commented Jan 18, 2022

I'm interested in helping, what are the steps to integrate the prism with this client made by oracle itself?

https://www.npmjs.com/package/oracledb

I think, the changes should be made on rust side of prisma, and then make sure everything on js side play nice with it...

@chadelofson
Copy link

I would be interested in helping get this driver done

@drodsou
Copy link

drodsou commented Feb 26, 2022

This would be a much appreciated feature, specially given the free availability of Oracle DBs in the cloud: https://www.oracle.com/cloud/free/#always-free

@hinogi
Copy link

hinogi commented Mar 13, 2022

Maybe just add support for oracle db here for the SQL Query AST and Visitor
https://github.com/prisma/quaint
@joseviniciusnunes @rizkyramadhan @chadelofson

@hinogi
Copy link

hinogi commented Apr 5, 2022

+1

@charleaux
Copy link

+1

@technervs
Copy link

correct me if I'm wrong, but I believe that the problem is not why oracle is closed, because while prism does not approve oracle, typeorm and knex have already done that.

@hinogi
Copy link

hinogi commented Dec 3, 2022

I meant the prisma connector api

@technervs
Copy link

technervs commented Dec 5, 2022

I meant the prisma connector api

it helps?
https://www.oracle.com/br/database/technologies/appdev/rest.html

@agustindev

This comment was marked as abuse.

@agustindev
Copy link

I can help with the support too

@koka0012
Copy link

If needed I can allocated a part of my team to help creating this connector.

@sheen4n
Copy link

sheen4n commented Aug 7, 2023

Reviving this, does anyone what are the things that we can do to make this connector a reality?

I am sure tons of people are willing to help

@nicholasvperry
Copy link

I agree and would love to see Oracle support. But for those who are looking for something until it does work, oracledb works very well.

@todevmilen

This comment was marked as off-topic.

2 similar comments
@viniciussantos45

This comment was marked as off-topic.

@vinnicius-martins

This comment was marked as off-topic.

@JaffParker
Copy link

Indicating support as well. I'm not an Oracle professional, I've been forced into it by the institute I work for. I'd love to abstract it as much as possible.

@vancerbtw
Copy link

Is there any formal headway being made on this now?

@gvenzl
Copy link

gvenzl commented Oct 31, 2023

Hi all,

I am the Oracle Database Product Manager and working for Oracle.
Thanks all for expressing your interest in having Oracle Database support for this great project.
I too would like to see Prisma support for Oracle Database.

Although I do not fully understand the architecture of Prisma, please forgive my lack of awareness, we do offer a fully open-source JavaScript driver and fully open-source C bindings for our C-based (Oracle Call Interface) drivers, called ODPI-C.

These C bindings (ODPI-C) are the same that are used for the open-source, community-built Rust driver oracle.

Furthermore, the required C driver libraries are available for free as a package called the Oracle Instant Client which is licensed under Oracle's Free Use Terms and Conditions.

Last but not least, there is also a free-to-use Oracle Database variant called Oracle Database Free, which is also licensed under the same Free Use Terms and Conditions.
You can quickly pull a Docker image of that Oracle Database Free image via docker pull gvenzl/oracle-free:slim.

With all that information laid out, are there still any technical or licensing obstacles that would prevent Oracle Database support for Prisma?

Thanks,

@janpio
Copy link
Contributor

janpio commented Oct 31, 2023

No, that sounds good.

Would you say the Rust driver is stable and mature enough to support the full relevant feature set?

Now of course someone "only" has to add an Oracle-compatible SQL dialect to Prisma (provider oracle would be the obvious choice), implement the Introspection queries, generation of Migration SQL, and of course all the SQL to run the possible queries from Prisma Client. Right now that is not on our roadmap.

@JaffParker
Copy link

@janpio would you accept contributions despite it not being on your roadmap? It's pretty important for a few, I'm sure we'd chip in.

@janpio
Copy link
Contributor

janpio commented Nov 1, 2023

Sure, the code is all on GitHub, so if you can figure it all out, we are willing to either review the PRs at the end or help how to set up a fork that could add support for this new provider.

@gvenzl
Copy link

gvenzl commented Nov 1, 2023

Hey @janpio,

Would you say the Rust driver is stable and mature enough to support the full relevant feature set?

Yeah, the Rust driver that I've linked above is stable and mature. We know the developers, and they are doing great work there. And I'm sure that in the unlikely event that we were to find anything, we could also report any issues to the driver team there and ask them for a fix in a true open-source community spirit.

To @JaffParker's point and earlier comment, a few people here have stated interest in helping to add Oracle Database support, e.g., @joseviniciusnunes, @chadelofson, @agustindev, @koka0012

And I, of course, am willing to provide answers, clarity, and help wherever possible.

@alexiuscrow
Copy link

👀

@ThorstenMewesSPK
Copy link

ThorstenMewesSPK commented Jan 5, 2024

Hi all, just discovered this while searching the web for a reliable oracle orm solution. Would really love to see this come to live! We could provide help with generating oracle dialect and sql syntax as requested by @janpio:

Now of course someone "only" has to add an Oracle-compatible SQL dialect to Prisma (provider oracle would be the obvious choice), implement the Introspection queries, generation of Migration SQL, and of course all the SQL to run the possible queries from Prisma Client. Right now that is not on our roadmap.

@leonardoRocchini
Copy link

It would be great to have an oracle Prisma adapter. There are updates?

@phabreeze
Copy link

phabreeze commented Apr 26, 2024

any updates on this adapter?

@janpio
Copy link
Contributor

janpio commented Apr 26, 2024

No updates or concrete plans right now. This issue is just here to track the demand for this via 👍 reactions to the original issue text.

@lroal
Copy link

lroal commented Apr 28, 2024

An alternative ORM that supports Oracle is https://github.com/alfateam/rdb

@hinogi
Copy link

hinogi commented Apr 28, 2024

Well there are other ORMs that support oracle, good old typeorm has also support for oracledb. More modern query builder lack support for oracle most of the time.

@CHSchuepfer
Copy link

Yeah, moved on as well. Just forgot the remove the notification.

@cjbj
Copy link

cjbj commented May 7, 2024

One note that may not be known by the non-Oracle user is that node-node-oracledb 6 by default is pure JavaScript and is fully open source. This makes installation and use trivial. Optional, advanced DB features are available if Oracle Instant Client / Oracle Client is additionally installed with node-oracledb but most users don't need them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
domain/client Issue in the "Client" domain: Prisma Client, Prisma Studio etc. domain/schema Issue in the "Schema" domain: Prisma Schema, Introspection, Migrations etc. kind/feature A request for a new feature. topic: connector
Projects
None yet
Development

No branches or pull requests