[{"data":1,"prerenderedAt":440},["ShallowReactive",2],{"project-13184143":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":44,"post_text":46,"what":47,"said":70,"maker_in_thread":155,"shape":163,"grid":167,"attempts":401,"same_week":402,"maker_shows":31,"maker_hidden":432,"reader_version":433,"card":434},"13184143","Godb","Godb is a simple Go ORM for PostgreSQL, MySQL, SQLite and SQL Server","title","Show HN: Godb is a simple Go ORM for PostgreSQL, MySQL, SQLite and SQL Server","https:\u002F\u002Fgithub.com\u002Fsamonzeweb\u002Fgodb","github.com","samonzeweb",1481805352,2016,205,88,131,2264,6,"notable","languages","go database library","library",[24,25,26,27],"go orm","go sql","postgresql go","struct mapping","roasted",-0.407,{"positive":31,"neutral":32,"mixed":31,"critical":33},1,7,17,26,{"idea":36,"design":39,"docs":40,"performance":41,"execution":43},{"positive":37,"critical":38},0,15,{"positive":31,"critical":37},{"positive":37,"critical":37},{"positive":37,"critical":42},2,{"positive":37,"critical":37},[31,31,37,37,31,45,37,37,31,31,31,37,37,45,45,31,31,31,37,31,45,31,31,37,45,37,37,37,37,31,37,37,37,37,37,31,37,45,45,45],3,null,{"problem":48,"audience":46,"pricing":46,"motivation":55,"time_to_build":46,"stack":62,"openness":68,"stage":69,"team_size":69},{"value":49,"source":50,"evidence":51},"Mapping Go structs to database content and building SQL queries without doing it manually.","maker",[52],{"id":53,"by":11,"text":54},"13184440","I agree, it’s a simple tool. As mentioned in the README, it’s not a full-featured ORM, but it does more than building queries as it maps Go structs with databases content (on…",{"value":56,"source":50,"evidence":57},"A learning project to improve the maker's skills, and to fill a gap for an ORM like those in Rails and Entity Framework.",[58,59],{"id":53,"by":11,"text":54},{"id":60,"by":11,"text":61},"13186812","The projet started as a learning one. I made some independent and experimental component from time to time, and then glued them together, rewriting some parts, ... Why this kind…",[63],{"value":64,"source":50,"evidence":65},"Go",[66],{"id":67},"post","open_source","unknown",{"praise":71,"objections":72,"requests":117,"questions":129,"alternatives":136},[],[73,88,99,106],{"value":74,"source":75,"evidence":76},"Not really an ORM; it is a query builder with struct mapping.","commenter",[77,81,85],{"id":78,"by":79,"text":80},"13184341","masklinn","That's more of a query builder than an ORM: it doesn't actually use objects and only allows for expressing SQL queries in Go. In that it is similar to LINQ or HQL or SQLAlchemy…",{"id":82,"by":83,"text":84},"13185056","camus2","Your library is a query builder, not an ORM.",{"id":86,"by":83,"text":87},"13185018","> ORM is a tool to map an object model No, ORM means Object Relational Mapper. if your ORM doesn't support relations between tables, then it is not a ORM. Given a relationship…",{"value":89,"source":75,"evidence":90},"Fragmentation of Go SQL libraries is harmful.",[91,95],{"id":92,"by":93,"text":94},"13187132","aarondl0","Well, now that you're done learning I hope you'll become an sqlboiler user and maybe contribute to it to fit your use case too. Fragmentation in the sql world in Go is pretty bad…",{"id":96,"by":97,"text":98},"13188097","xupybd","Splits development effort, slips developer skill across many options. Means everyone wastes time re-inventing the wheel instead of solving the problems they want to.",{"value":100,"source":75,"evidence":101},"Reflection hurts performance.",[102],{"id":103,"by":104,"text":105},"13184785","the_duke","The annoying thing about ORMs in Go is that since there are no macros \u002F annotations you either have to use code generation or reflection. Reflection is a real drag on performance.",{"value":107,"source":75,"evidence":108},"Nested struct mapping has no example and nested SELECTs are not supported.",[109,113],{"id":110,"by":111,"text":112},"13184538","mdasen","One of the features listed is \"Mapping with nested structs\", but there's no example of this. Given that this would be a feature setting your project apart from many of the Go…",{"id":114,"by":115,"text":116},"13188241","mci","I cannot see how to build nested SELECTs with Godb.",[118,122],{"value":119,"source":75,"evidence":120},"Add an example of nested structs with relations.",[121],{"id":110,"by":111,"text":112},{"value":123,"source":75,"evidence":124},"Support CockroachDB.",[125],{"id":126,"by":127,"text":128},"13185250","knz42","Do you plan to make it work with CockroachDB?",[130],{"value":131,"source":75,"evidence":132},"Why build another Go ORM when alternatives exist?",[133],{"id":134,"by":93,"text":135},"13186409","I'm the author of a code-generation ORM in Go (real orm, does relationships fairly robustly) https:\u002F\u002Fgithub.com\u002Fvattle\u002Fsqlboiler and I'm curious why you needed to make another…",[137,141,148],{"value":138,"source":75,"evidence":139},"sqlboiler",[140],{"id":134,"by":93,"text":135},{"value":142,"source":75,"evidence":143},"upper\u002Fdb",[144],{"id":145,"by":146,"text":147},"13184796","peterkieltyka","Also, for others looking for a Go data layer \u002F ORM`ish package, have a look at https:\u002F\u002Fgithub.com\u002Fupper\u002Fdb it's been in development for years, its used in production by many…",{"value":149,"source":75,"evidence":150},"sqlx",[151],{"id":152,"by":153,"text":154},"13184988","LukeB42","Is there anything like this or sqlx but in C?",{"comments":156,"answered":45,"key":157},9,[158,159,162],{"id":53,"text":54},{"id":160,"text":161},"13184572","We agree. In fact I did not know how to qualify * exactly * godb.",{"id":60,"text":61},{"commenters":164,"max_depth":156,"maker_replies":156,"first_comment_mins":165,"lifespan_hours":166},56,41,97,[168,170,172,174,175,179,183,186,189,192,196,199,203,205,208,210,213,216,217,218,219,222,223,225,227,230,232,234,237,240,245,247,250,254,256,257,259,260,262,265,268,270,272,274,276,279,283,286,288,291,294,297,299,302,305,307,310,314,317,320,322,325,327,329,332,335,338,341,344,346,349,352,355,358,360,363,366,369,372,376,379,381,384,387,390,392,395,397],[78,37,31,169,79,37],"project\u002Fcritical\u002Fidea",[53,37,37,171,11,31],"maker\u002Fneutral\u002Fidea",[173,37,31,169,79,37],"13184487",[160,37,37,171,11,31],[176,37,37,177,178,37],"13184726","other\u002Fneutral\u002Fidea","eternalban",[180,37,37,181,182,37],"13185263","other\u002Fneutral\u002Fnone","Hannan",[184,37,37,181,185,37],"13185319","sarabob",[187,37,37,188,182,37],"13185471","commenter\u002Fneutral\u002Fnone",[190,37,31,169,191,37],"13186364","edoceo",[193,37,37,194,195,37],"13188794","commenter\u002Fneutral\u002Fidea","weberc2",[197,37,31,169,198,37],"13185580","SanFranManDan",[200,37,45,201,202,37],"13185673","project\u002Fmixed\u002Fidea","chisleu",[145,31,37,204,146,37],"other\u002Fcritical\u002Fidea",[206,31,37,181,207,37],"13185027","JupiterMoon",[209,31,37,181,202,37],"13185683",[211,31,37,181,212,37],"13186208","0xCMP",[214,31,37,181,215,37],"13189690","Rapzid",[134,42,31,169,93,37],[60,42,37,171,11,31],[92,42,31,169,93,37],[220,42,37,188,221,37],"13187189","assafmo",[96,42,31,169,97,37],[224,42,31,169,93,37],"13188157",[226,42,37,188,221,37],"13188909",[228,42,37,188,229,37],"13189246","jasonwatkinspdx",[231,42,37,188,93,37],"13189870",[233,42,37,188,229,37],"13194358",[235,42,37,188,236,37],"13211234","mentat",[238,42,31,169,239,37],"13190393","jockeymockey",[241,42,242,243,244,37],"13186845",5,"project\u002Fpositive\u002Fdesign","stcredzero",[110,45,45,246,111,37],"project\u002Fneutral\u002Fdocs",[248,45,37,249,11,31],"13184596","maker\u002Fneutral\u002Fdocs",[251,45,45,252,253,37],"13184746","project\u002Fneutral\u002Fidea","chrisan",[255,45,37,171,11,31],"13184824",[82,45,31,169,83,37],[258,45,37,177,79,37],"13184905",[86,45,31,169,83,37],[261,45,31,169,79,37],"13185061",[263,45,37,181,264,37],"13185213","rantanplan",[266,45,37,177,267,37],"13185590","blitzd",[269,45,37,181,264,37],"13185661",[271,45,37,181,83,37],"13189230",[273,45,37,181,264,37],"13190530",[275,45,31,169,83,37],"13190907",[277,278,37,171,11,31],"13186297",4,[280,242,45,281,282,37],"13184568","project\u002Fneutral\u002Fdesign","sdfjkl",[284,242,37,181,285,37],"13185875","ademarre",[103,18,31,287,104,37],"project\u002Fcritical\u002Fperformance",[289,18,31,287,290,37],"13184894","hacknat",[292,18,37,181,293,37],"13184940","aleksi",[295,18,37,181,296,37],"13185088","lenka",[298,18,37,181,83,37],"13185147",[300,18,37,181,301,37],"13188158","cyri",[303,18,37,304,11,31],"13186317","maker\u002Fneutral\u002Fperformance",[306,32,45,252,97,37],"13188077",[308,32,37,177,309,37],"13190176","zubi",[311,312,37,181,313,37],"13184505",8,"tkyjonathan",[315,312,37,181,316,37],"13184522","chongli",[318,312,37,181,319,37],"13184574","jerf",[321,312,37,181,178,37],"13184797",[323,312,37,188,324,37],"13184999","pg314",[326,312,37,188,319,37],"13187313",[328,312,37,188,313,37],"13188753",[330,312,37,188,331,37],"13192407","commentzorro",[333,312,37,188,334,37],"13185251","sirtaj",[336,312,31,169,337,37],"13190593","jsudhams",[339,312,37,188,340,37],"13184523","Shanea93",[342,312,37,188,343,37],"13184536","UK-AL",[345,312,37,188,324,37],"13185049",[347,312,37,188,348,37],"13185120","kbenson",[350,312,37,188,351,37],"13184546","reitanqild",[353,312,37,188,354,37],"13184807","jasode",[356,312,37,188,357,37],"13185255","wmil",[359,312,37,188,313,37],"13188779",[361,312,37,188,362,37],"13185612","mschulze",[364,312,37,188,365,37],"13187045","takeda",[367,156,37,181,368,37],"13186462","VexorLoophole",[370,156,37,181,371,37],"13190353","sethammons",[373,374,31,169,375,37],"13187624",10,"jcoffland",[377,374,37,188,378,37],"13187967","sirclueless",[380,374,37,188,375,37],"13188255",[114,382,45,383,115,37],11,"project\u002Fneutral\u002Fexecution",[385,382,37,386,11,31],"13192749","maker\u002Fneutral\u002Fexecution",[126,388,45,389,127,37],12,"project\u002Fneutral\u002Fnone",[391,388,37,188,212,37],"13186169",[393,388,37,394,11,31],"13186334","maker\u002Fneutral\u002Fnone",[152,396,45,389,153,37],13,[398,399,37,181,400,37],"13187068",14,"wangii",[],[403,408,413,418,422,427],{"id":404,"name":405,"points":406,"category":407},"13194074","Oldster",475,"web_saas",{"id":409,"name":410,"points":411,"category":412},"13202610","Spark School",190,"learning_science",{"id":414,"name":415,"points":416,"category":417},"13211132","HoverPy",170,"ai",{"id":419,"name":420,"points":15,"category":421},"13230954","Google Blade","productivity",{"id":423,"name":424,"points":425,"category":426},"13208352","Libtmux",86,"dev_tools",{"id":428,"name":429,"points":430,"category":431},"13188522","GoboLinux 016 featuring Runner",80,"infrastructure",false,"v2",{"id":435,"name":5,"line":6,"ai":432,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":436,"top":18,"kw":437,"maker":11,"domain":10,"tier":19,"attempts":37,"strip":438,"url":9,"mix":439,"praise":-1,"objection":74,"sub":21},13184143,-0.41,[24,25,26,27],"1100130011100331110131103000010000010333",[31,32,31,33],1794036550717]