Allow Schema and Blocks Configuration Sharing Between Projects

Enable a functionality to link Schema configurations directly between different DatoCMS projects. This would allow shared Models and Blocks to be managed centrally and used across multiple projects.

Benefits:

  1. Accelerated Development:
  • By linking existing Models and Blocks, setting up new projects becomes faster and more efficient.
  1. Consistency Across Projects:
  • Ensures uniform data structures across different projects, reducing discrepancies and errors.
  1. Simplified Maintenance:
  • Central management of linked Schemas allows updates to be made once and automatically reflected in all connected projects.
  1. Enhanced Collaboration:
  • Teams can leverage a common set of Schemas, facilitating better collaboration and understanding across projects.
  1. Cost Efficiency:
  • Reduces development costs by eliminating the need to recreate similar data structures for each project.

Use Case:

Our agency handles multiple client websites with similar content needs. Linking Schema configurations directly between projects would streamline our workflow, ensuring consistency and speeding up project setups and updates.

Thank you for considering this request. I believe this feature would greatly benefit many DatoCMS users.

Hey @guillaume,

We have a similar feature in the CLI called “profiles”, which can be used to sync up schema across projects: Keeping multiple projects in sync — Environments and migrations — DatoCMS

Is that sufficient? It’s not as easy as something in the UI directly, but it might help?

1 Like

I think is a really important request and I’m surprised it’s not implemented on Datocms, which I believe is built on postgres, so should be easy to export/import scheams. It is currently not possible (or extremely difficult, as I can’t figure it out) to share a particular schema across multiple projects. The Blueprint project link, is I believe relevent if you want to recreate an entire project, but that’s rarely the case. Generally, we work really hard to create a good schema for a particular use, but then we can’t recreate on another project, unless we copy the entire project, which wouldn’t work, because we don’t want the entire project. However, we just want to copy certain schemas. This is like exporting a table in postgre and then just running the SQL in another editor. Another use case, is if you want to sell some services to clients and have them use Datocms as the CMS. You end up having to manually recreate schemas on the client datocms account, because there is no way to export/import schemas between projects and accounts. Having to recreate the schema every time is really a giant waste of resources. Actually, we’ve moved to just using postgres natively now for new projects because of this difficulty, even if Datocms would ideally be our first choice, because the UI etc is amazing. But, why can’t you export/import schemas between projects/accounts? Why can’t there be some sort of file you can export for a particular schema which you can just import into another project to automatically create the schema?

Hey @osseonews,

You can use the normal migration scripts to copy schema between projects. When you autogenerate a new one, it just creates a simple JS script with a chain of CMA commands (a little bit like SQL dumps) that you can manually edit to whatever you want, like limiting it to a single model.

It’s not a perfect system, and if there are any specific changes you’d like to see in that, please feel free to make a new feature request for them. But that’s the system we have right now :frowning:

Our backend is built on many different technologies, and it’s not just one database (there’s various services running from different providers, which our UI and API try to combine into a cohesive experience). We provide the CMA to try to abstract those operations into a single database-like interface. But at the end of the day, ultimately it’s a proprietary system that focuses on ease of use for websites of simple to medium complexity, and it won’t be the right answer for every project. In some situations it might indeed be better to host and manage your own database and UI instead that you have full control over.

Sorry about that!

1 Like

Thanks. I didn’t know about migration scripts. I’ll try to figure those out. Honestly, you have a great, great system. Just a few things, I just can’t figure out yet.

1 Like