Support for MySQL/MariaDB or PostgreSQL would be really beneficial as SQL Server is a bit daunting to get running without a decent amount of capital. Even SQL Express limits the host greatly, and given the project is built against .NET core it will probably hurt deployment to Linux/Mac.
Even SQL Server for Linux is still shaky at the moment.
This is actually very easy for anyone to do.
The project has a data access layer using the repository pattern. Data access is written against a few repository interfaces (see https://github.com/bitwarden/core/tree/master/src/Core/Repositories) that is isolated from all other business logic of the application. Once you write to those interfaces all you need to do is change the DI registration of those interfaces to your DB engine implementation and you're done (see https://github.com/bitwarden/core/blob/master/src/Api/Startup.cs#L62).
Closing this since this is not something I plan on implementing but is very possible given the above ^.
Hi
have you heard of anyone who tried to implement this and worked for him?
unfortunately I am not experienced in this field and I want to have bitwarden on mysql.
Mssql takes up too much memory
I have a PostgreSQL database. I would like to have that driver implemented.
Personally, I can't believe that an open source project chose mssql as the DB driver...forget that it's 1.3GB just for the mssql container while the other bitwarden containers are ~200-300MBs. This has nothing to do with "mssql vs others" -- mssql server on linux is not at all mature (https://www.techrepublic.com/article/microsoft-continues-open-source-love-fest-announces-sql-server-on-linux/). MariaDB/MySQL/PosgreSQL/SQLite all make sense here given how much use and abuse they have handled. Was there a specific reason for using MSSQL?
edit: to be fair, it's an MS/ASP project...which I now see. I guess it makes more sense given that, but MS SQL in Docker is still very immature.
@ventz reason is simply because I have about 10 years of professional experience with MS SQL and no experience with any other engine. So I use what I know.
@kspearrin Fair enough. I also jumped the gun and made the comment before I started poking through the project and seeing that everything else is MS/ASP -- which again, given that makes a lot more sense.
I saw the comment from earlier about modifying it for another DB engine, but it seems some of the info has changed (ex: line 62 linked). Would it be possible to give me some info about what needs to be ported -- I would be happy to port to mariadb/mysql.
Most helpful comment
@kspearrin Fair enough. I also jumped the gun and made the comment before I started poking through the project and seeing that everything else is MS/ASP -- which again, given that makes a lot more sense.
I saw the comment from earlier about modifying it for another DB engine, but it seems some of the info has changed (ex: line 62 linked). Would it be possible to give me some info about what needs to be ported -- I would be happy to port to mariadb/mysql.