-
Notifications
You must be signed in to change notification settings - Fork 83
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
Consider supporting PostgreSQL (and switching to it for matrix.org/vector.im) #468
Comments
Only if you want to support both DBs in parallel. (But sqlalchemy exists to mitigate that somewhat anyway.) |
As another reason I'm more comfortable with Postgres, I found out I would also go to say that maybe we should use a proper SQL migration library in Sydent instead of rolling our own, but oh well. |
I've had neutral to positve experiences with sqlalchemy + alembic. But I don't think Sydent's DB changes all that much; doubt the investment would be worth it. (Unless it was a testbed for synapse...) |
In our case, we have high usage of sydent, the sydent process is regularly at 100% CPU on some of our sydent deployement (we use 17 sydent servers replicated). |
In terms of the work required, off the top of my head one would need to:
So no small feat, but the codebase is fairly small and self-contained. I count 82 instances of One should also be weary of subtle differences between SQLite and PostgreSQL that may cause bugs. It would also be nice to define minimum supported versions of each database engine. I propose just copying Synapse’s: https://matrix-org.github.io/synapse/latest/deprecation_policy.html |
Some of the recent problems with running the casefolding migration script against the live SQLite database have led us to think about whether we should support PostgreSQL as an alternative to SQLite (and use it in production).
Advantages
Disadvantages
Why adding support for PostgreSQL may not be so bad
pgloader
, which converts from several database and file formats (including SQLite3) to PostgresNOT NULL
properly.The text was updated successfully, but these errors were encountered: