gobuffalo / pop

A Tasty Treat For All Your Database Needs
MIT License
1.44k stars 243 forks source link

Possibly crazy: support for non-SQL datastores? #4

Open arschles opened 6 years ago

arschles commented 6 years ago

Pop is a rad package for CRUD on relational databases. Would there be any interest in expanding its scope to non-relational stores? I'm especially interested in MongoDB/CosmosDB and Google Cloud Datastore.

Happy to go over my rationale in more detail, just wanted to float the idea first.

And my feelings won't be hurt if you tell me to get lost if I'm way off here! 😄

markbates commented 6 years ago

You’re not the first to ask. :) The answer is absolutely, provided that someone writes support for it. :) A pr to add support for any of them would be great.

pieterlouw commented 6 years ago

Can this be achieved by adding an implementation for the dialect interface?

I guess with NoSQL db's the fizz/translator methods won't need to be implementated.

stanislas-m commented 6 years ago

Just my two cents here: Pop is deeply SQL oriented (most of the code handle SQL matters), so in my opinion, introducing NoSQL here is not the best idea. We'll loose most of Pop features. How about having another package for that? :)

pieterlouw commented 6 years ago

@stanislas-m : Good point. The new package name could be pop_diet :)

markbates commented 6 years ago

Honestly, I'm all for seeing what happens when someone tries to add something like Mongo to it. I'm sure a lot of stuff would be no-ops, but it would be interesting to see. I'm not the person to add it though.

arschles commented 6 years ago

sorry - I haven't gotten to this yet. there are quite a few other things on my plate, but I'd like to try it out sometime in the near future...

h2ouw8n4 commented 5 years ago

I have to say, I'm really curious about adding this capability. I may circle back to this. I have a project that I believe could benefit from this. Of course the problem is timing. I am going to see if somehow, I could work this into the overall planning of the project.