Replies: 40 comments 102 replies
-
Not sure if this would be the right place to suggest but I would love for this to integrate with firebase firestore (and going off-topic, it would be cool if payload could integrate with more firebase features natively such as auth) |
Beta Was this translation helpful? Give feedback.
-
I would like it integrated with PostgreSQL |
Beta Was this translation helpful? Give feedback.
-
I am using table |
Beta Was this translation helpful? Give feedback.
-
I personally think the idea of how to structure the database can/should be punted for now. IMHO the hard work here is abstracting your database such that different engines can be shimmed underneath, this enables you to implement some working version of Postgres and let the community contribute/suggest improvements over time. Are you planning on making a wholesale switch from Personally I think the least impact way to do this is to:
It's quite high-effort but that's how I would do it -- I think getting into the weeds on how to structure the Postgres tables might be a little bit premature. This way, if someone comes along and says they want to support BigQuery or whatever for some reason -- you can easily tell them "sure, just write an engine and we'll consider including it", and see if they do it. |
Beta Was this translation helpful? Give feedback.
-
* James Mikrut ***@***.***> [2022-08-04 18:33]:
Hey @gnusupport — I have also been around SQL for over a decade and I understand that storing lots of content in JSON columns is bad design. That is why I wrote what I wrote—describing how it is **_not ideal_**.
I think we are saying the exact same thing.
Yes, that is same thing I mean.
|
Beta Was this translation helpful? Give feedback.
-
hey there, I was wondering if there are any updates on this topic. would appreciate if you can share what your timeline looks like so we can consider it. thanks! |
Beta Was this translation helpful? Give feedback.
-
I really would like to have the functionality of data migration in Payloadcms. I am not so much lacking in a wide range of different databases. I mostly miss an easy way to migrate data. E. G. There should be a default approach when renaming a field. The lack of this functionality makes it hard to develop an enterprise product aside from POCs.
So I would love to see that Payload cms go all in for Prisma. |
Beta Was this translation helpful? Give feedback.
-
Lol, it's funny that this is second in priority, and upload progress bar is first )))))))) |
Beta Was this translation helpful? Give feedback.
-
Just throwing a note in - totally understand about prioritization but wanted to raise my hand as another "I love everything about this CMS but MongoDB is a hard pass" user here! |
Beta Was this translation helpful? Give feedback.
-
It is for every project also always a pain in the ass to set up MongoDB especial for junior developers. We have some docker configs for it, but adds more complexity to the project. We are now looking into https://github.com/nodkz/mongodb-memory-server for local development. Maybe an idea to include this standard in payload? This makes the barrier to enter for hobby projects lower and the setup for local development less complex. We also use N8N in a lot of projects (they use Prisma) and there we have the option to use SQLite, it's one command, and you got it a n8n setup running. |
Beta Was this translation helpful? Give feedback.
-
The usage of the NoSql database is an advantage of Payload CMS. It simplifies deep object nesting a lot. As a user who switched from SQL-based CMS, I am delighted with this design choice. SQL-based CMS should abstract away the need to think about relations, but it is impossible. You still should assume the database structure for complex content types. So NoSql is a better choice for a CMS that allows developers to create custom content types. I also did not have trouble setting up MongoDB for local development. The free remote instance is a perfect choice for the first try. |
Beta Was this translation helpful? Give feedback.
-
Just want to throw two precedents in the mix here in case people are not aware of them. I've not done a deep dive in either of these, but they seem closely related to the potential paths so might be worth taking a closer look at these projects and learning what we can...
|
Beta Was this translation helpful? Give feedback.
-
The latest wagtail minor release adds dynamic field migration utilities: https://docs.wagtail.org/en/stable/advanced_topics/streamfield_migrations.html#making-structural-changes I think this direction makes a lot of sense overall and really addresses some of the major pain points with dynamic fields. |
Beta Was this translation helpful? Give feedback.
-
I think planetscale.com makes MySQL a very interesting target as well. |
Beta Was this translation helpful? Give feedback.
-
As @aleksei-a-savitski stated, it's true that NoSQL databases like MongoDB offer several advantages over traditional relational databases, such as the ability to store evolving data and complex data structures. For projects that require these features, MongoDB is the best fit. |
Beta Was this translation helpful? Give feedback.
-
What ever will be done, hopefully it will stay mongodb first, there are already other projects at some point moved away from mongodb for the worse. |
Beta Was this translation helpful? Give feedback.
-
This might be further afield on roadmaps. The implementation of the adapters is obviously first to accommodate multiple databases. My question is if there has been any interests or questions about using multiple databases within one payload server. I don't think this would be feasible at the field level though that would be amazing. I'm imagining at the collection level. for example, I might want to use postgres for transactions on an ecommerce shop or an invoices collection; mongodb for user profiles and theming; and even theoretically neo4j for storing crm and supply chain data. Would this be possible to use one adapter that connects to multiple databases? Or import multiple adapters in the config and be able to call them for different collections separately. If this is a stupid question let me know. Still getting ahold of CMS systems in general and Payload specifically. |
Beta Was this translation helpful? Give feedback.
-
please stay focused on mongodb only. |
Beta Was this translation helpful? Give feedback.
-
Do we have any updates on the progress for postgres support? 🙄 💙 |
Beta Was this translation helpful? Give feedback.
-
Here is a status update since it has been too long. We've done a ton of work to make Payload's database interaction completely agnostic in it's core. At the same time we are packing in new database features that give us feature parity with most backend frameworks. The timing of doing this all at once is a huge lift, but also clears a path for any new DB adapters to be complete and not require changes for a long time. Here is an overview of the work & progress so far: |
Beta Was this translation helpful? Give feedback.
-
Update from the Payload team - we've got a ton of stuff cooking, and I just published a blog post regarding how we might map our Payload field schemas (and their features) over to a relational database structure. We're now looking for community feedback! https://payloadcms.com/blog/relational-database-table-structure-rfc Take a look and let us know what you think. And thank you! |
Beta Was this translation helpful? Give feedback.
-
I don't know how to use PayloadCMS because I'm not familiar with MongoDB. I only know how to use SQL. If PayloadCMS supports SQL, then I will use PayloadCMS. |
Beta Was this translation helpful? Give feedback.
-
@topmask completely independ of payload i highly suggest to get used to mongodb. For basics it's much easier than sql databases. And for complex uses cases there are so called aggregations. Most of us developers wouldn't store data in table like structures if it wasn't fir thats what we once get teached. |
Beta Was this translation helpful? Give feedback.
-
Does anyone know if Payload works with FerretDB? Supposedly, it's a drop-in alternative to MongoDB backed by PostgreSQL. |
Beta Was this translation helpful? Give feedback.
-
🎉 Postgres support is here! Check out the 2.0 release. |
Beta Was this translation helpful? Give feedback.
-
With Payload using Drizzle, does this also mean it will support Cloudflare D1 like Drizzle? I don't see it mentioned anywhere in this discussion yet. |
Beta Was this translation helpful? Give feedback.
-
Adding to this - currently I need to use TinaCMS because the requirements for the project meant that syncing content between repositories happens very often, which makes it unmanageable with Payload. It would be awesome if at some point PayloadCMS can consider adding a Markdown/Git backend. |
Beta Was this translation helpful? Give feedback.
-
Really excited for SQLite! Any update yet? |
Beta Was this translation helpful? Give feedback.
-
Does payload now works with MS SQL ? I would love to have payload works with any database. For now I need it working with MS SQL server as our whole database is on MS SQL, We are ready to pay for support if someone can. |
Beta Was this translation helpful? Give feedback.
-
I just wanted to pitch in and say that I would love to have support for MySQL. Drizzle supports it as well. The docs mention that support will be added in the near future, but I couldn't find any active issues or pull requests regarding this so I thought I'd add it here so people can upvote it. |
Beta Was this translation helpful? Give feedback.
-
Description
Support additional databases
Implementation Detail
Potential Breaking Changes
None
Effort
High
Update 7/25/2023
We've made a ton of progress with a proof-of-concept that showcases how we are currently envisioning the translation of Payload field schemas to a relational database structure, and we're looking for feedback!
Give it a look:
https://payloadcms.com/blog/relational-database-table-structure-rfc
Update 5/23/2023
We believe we have the database adapter type determined. The idea is to expose a consistent adapter API so that any manner of database integration could be implemented. All interactions with the database within Payload should go through one of these adapter methods, so the idea is to be comprehensive.
Please share any feedback you have below!
Beta Was this translation helpful? Give feedback.
All reactions