8 ms·
DBCore
- jcmontx 5y agoI like these kind of tools. I wish there were more thing like this in the .NET ecosystem
- vbilopav 5y agoThere is, I made something similar for my needs. Docs could be better, but it's a open source and free I did in my free ti lme without sponsors or any money. https://github.com/vb-consulting/PgRoutiner https://github.com/vb-consulting/PgRoutiner
- eatonphil 5y agoUnexpected to see this here! I have not done a lot of work on this recently, but happy to answer any questions if you have any.
- omarfarooq 5y agoCame across it on an old comment where you said you were building something similar to Supabase. ;)
- claytonjy 5y agoLooks a lot like PostgREST, but with more backends (not just postgres), fewer fancy features (joins? not mentioned here), and with the client-side code generator built in (typescript). If the author is reading, assuming I'm using Postgres and typescript, in what situations would I choose this over PostgREST + any openapi code generator?
- algo_trader 5y agoAre there any UI-generators that can go with postgrest? Dbcore looks so great, but i cant really stomach adding another language (Go..) to the mix.
- claytonjy 5y agoI haven't used any of them, but PostgREST lists a bunch of client libs in a variety of languages in their docs. [0] If you're worried about another language in the mix, you should know that PostgREST is powered by Haskell. [0] https://postgrest.org/en/v8.0/ecosystem.html#client-side-libraries https://postgrest.org/en/v8.0/ecosystem.html#client-side-lib...
- eugeniox 5y agoYou can try https://dadabik.com https://dadabik.com (disclaimer: I am the author/founder).
- eatonphil 5y agoThe difference between this and openapi code generator (I think) is that I made a few specific decisions in the builtin templates that help get internal business apps off the ground faster. But since it's designed around a template system you could do whatever you want with it. And of course openapi is much more mature just generally speaking. It's different from PostgREST in that it doesn't dynamically read schemas from the DB during the application server runtime. You generate an application from the DB up front and then you can do whatever you want with that generated application afterward.
- eurasiantiger 5y agoHow to migrate to a backwards-incompatible version of the schema without data loss?
- gravypod 5y agoI would love if something like this existed except it used a .proto as the source of truth and had a way to provide ways to rename/query certain fields. Would make it easy to replace shared DBs with APIs over time.
- DoctorOW 5y agoInteresting how many languages are in here, HTML/CSS/TS on the front-end is no surprise, Go on the generated back-end is a little less expected than full-stack Typescript. The fact that the tool itself is in F# is really interesting. I kind of expected it to be some combinations of the others. This is really cool. Poking around the source code, it's surprisingly simple. It's just a database -> template engine with a front-end/back-end template included.
- PaulHoule 5y agoIt is not surprising it is that simple. It really is that simple to generate CRUD templates. People just don’t do it.
- hawksprite 5y agoI’ve been wanting to build this for years! Especially in a B2B setting, sometimes they simply want a prototype.
- elzbardico 5y ago2021, let me introduce you to Microsoft Access, but now for the web
- kfk 5y agocare to tell us what specific similarities you see between MS Access and this? I worked with Access and it had a few issues, it could be buggy and it did not support multiple users nor logins or sso.
- elzbardico 5y agoI didn't meant to disparage the project. The comparison is because it does in the web basically the same thing that access provided: the ability for power users to build applications with minimal or absolutely no code given a physical data model.
- ComodoHacker 5y agoIt's more like Oracle APEX.
- eatonphil 5y agoI have used Oracle APEX and I assure you this is pretty dissimilar to APEX. :)
- revskill 5y agoReal world CRUD is a bit different though, you want to send the log to somewhere else, use Sentry to try catch error in your CRUD endpoint. Or publishing a message to Kafka after u created an object. How to integrate "real world components" into this ?
- eatonphil 5y agoThe primary use case I had in mind for this was internal business apps. But a few ways you could hook without any code changes in dbcore: use LISTEN/NOTIFY or equivalent to hook on changes, poll for changes in the DB, "eject" the generated code and edit API handlers directly to call where you want, or just edit the default templates directly with whatever API handlers you want to call. It's true there's not a great way to add hooks at a configuration level at the moment. But there are still many ways you could work around that.
- manojlds 5y agoLot of these internal business apps have a attached workflow to CRUD (reviews, approval etc) Any thoughts around workflows?
- rapnie 5y agoNot really in line with this particular CRUD subject, but combine-able esp. if things grow in size and scale: https://temporal.io https://temporal.io provides a really nice way to code your workflows in Golang, applicable for small-scale, while hiding most complexity that come with scaling.
- swyx 5y agoaye, i work at Temporal, happy to answer any qtns!
- abhinav456 5y agodbcore
- cbsmith 5y agoRemember when DB's embedded web servers so you could access their data over HTTP? That was like 2000 right? The world has come full circle.
- yummybear 5y agoWe access the DB manually -> this is difficult and repetitive -> The DB does is -> This is inflexible and difficult -> We access the DB manually