OrchardCMS / OrchardCore

Orchard Core is an open-source modular and multi-tenant application framework built with ASP.NET Core, and a content management system (CMS) built on top of that framework.
https://orchardcore.net
BSD 3-Clause "New" or "Revised" License
7.45k stars 2.41k forks source link

Database Extensibility #790

Open hishamco opened 7 years ago

hishamco commented 7 years ago

The Orchard nowadays is using AddDataAccess() to add the supported database providers via TryAddDataProvider, to make this extensible we can have Orchard.Data.SqlServer, Orchard.Data.Sqlite, Orchard.Data.MySQL and Orchard.Data.Postgres, then each provider comes from a specific module, and they are enabled by default for the Setup So the AddDataAccess() will be responsible for data providers discovery from Orchard.Data.[DatabaseProvider] namespaces

IMHO this would be another good extensible point in Orchard

sebastienros commented 7 years ago

Could be a good idea, but I am not sure we'll get anything from this. I only expect Orchard CMS to support this database selection, and it's already supporting all the databases exposed in YesSql. What else could it be, Oracle? We have rarely seen anyone ask for Orchard by the past. And the day we decide to support it, we'll just add it.

hishamco commented 7 years ago

It doesn't matter what database could be, because the current solution rely into the supported providers in YesSQL which is the thing that you manage. Assume I wanna use Oracle, Microsoft Access .. etc, the proposed solution will let the others plug their provider(s) without waiting for YesSQL or Orchard to updated the supported the provider that they wanna use

Adding this will not be a side effect, in other side it will make the database extensible, this also may let us enable/disable the provider(s) according the customer provider .. who knows

sebastienros commented 7 years ago

please expand the "..." We already support the majority of databases people would expect. Microsoft Access? Please, let's be serious. Oracle? Is there even a supported dotnet core connector? Then when there is we might (conditional) think about adding support for it.

I can't see a single reason right now to add more complexity where it's not necessary.

hishamco commented 7 years ago

No problem, I will close this

hishamco commented 7 years ago

@Jetski5822 if @sebastienros agree with this one I will open it and I will take care about it

jpiquot commented 6 years ago

Hi Sebastien,

I agree that a few customers will ask for Oracle. But if we want to use OrchardCore as a modular application library for professional applications, we need less constraints on data persistance.

I have a project where Oracle is required.

Jetski5822 commented 6 years ago

@jpiquot I agree - We need to do something around abstracting this stuff out to allow you to have an Oracle abstraction....

NB: I nearly typed 'a nice oracle abstraction'... but then realized... nothing about the Oracle .net libraries is nice

:)

jpiquot commented 6 years ago

I really love MS SQL and don't like Oracle but as we say in France, the Customer is the King. ;)

Piedone commented 7 months ago

Related: https://github.com/OrchardCMS/OrchardCore/issues/1325.

hishamco commented 7 months ago

The intent at the time is not to have database packages that are not used, in other words, we could make the database providers picker in setup customizable. For example, I might have a company that uses MySQL only, so other databases in the picker might not make sense to me