zeruniverse / Password-Manager

An online keepass-like tool to manage password. client-side AES encryption!
Other
170 stars 44 forks source link

[Enhancement] Introduce DBAL to make application database-independent #232

Closed schams-net closed 4 years ago

schams-net commented 5 years ago

Problem

A MySQL/MariaDB database instance is currently a mandatory requirement for the application. Other DB servers such as PostgreSQL, MSSQL, etc. can not be used.

Suggested Solution

A database abstraction layer (DBAL) such as Doctrine would make the application independent from a specific database engine. This approach would also make it possible to use server-less engines such as SQLite (a DB engine embedded in PHP), which would mean no separate database server is required on the server.

Changes Required

Additional Notes

Doctrine is a well-know DBAL in the PHP world today. Currently supported database vendors include MySQL, Oracle, Microsoft SQL Server, PostgreSQL, SAP Sybase SQL Anywhere, SQLite and Drizzle.

CoderJason123 commented 5 years ago

Not a bad idea -- i actually ran on sqlite just to see how painful it would be, and it worked quite well, just a few data type issues. My only comment to add would be to please keep the code base small. It's easy for folks to look thru all the code and feel comfortable.

BenjaminHae commented 5 years ago

I'll upload my first steps in moving to doctrine this weekend.

BenjaminHae commented 5 years ago

I've tried to implement the backend based on the symfony framework with doctrine as orm. It is in no way complete and does not conform to the interfaces used in the current version. https://github.com/BenjaminHae/Password-Manager/tree/new-backend

Maybe someone might look into it and review whether this is a good idea. Pros:

zeruniverse commented 4 years ago

GOTO #248 if not done yet