SpongePowered / SpongeAPI

A Minecraft plugin API
http://www.spongepowered.org/
MIT License
1.14k stars 342 forks source link

Separate database implementations into official plugins #1936

Open vectrixdevelops opened 5 years ago

vectrixdevelops commented 5 years ago

I and others believe instead of shading various database drivers for different database systems, such as H2, MySQL, MariaDB and more, into the Sponge implementation. We should move these into a suite of official plugins.

There is simply no need to unnecessarily increase the size of the jar with many database drivers where only a few are used at once. Separating them also allows us to maintain their driver versions more often, than just on minor / major version bumps on the implementations.

Finally, there are a lot of different database systems out there and I don't expect us to shade a lot of them in, we seem to give the impression that we should provide an implementation for all, when this should very much not be the case. Providing the SqlService should be enough without needing a default implementation.

Some discussion was also talked about here: https://github.com/SpongePowered/SpongeAPI/issues/1753

ItsDoot commented 5 years ago

Ideas on which databases we should support as official plugins?

MySQL and H2 are a given, since they are currently supported.

ST-DDT commented 5 years ago

I would also recommend postgres since it is open source , free and powerful.

mattmess1221 commented 5 years ago

If we do this, there should be a system in place to update the database connector without needing any changes in the plugin. If it's just loading non-plugins in the mods folder, that would be fine since forge does that already. It would just need a implementation on spongevanilla.