Status of database packages and tools for, e.g. ORM tools

You can use e.g. LibPQ.jl for PostgreSQL, i.e. it directly. There’s also a specific PostgresORM.jl

But I want to know of the best tools for databases that work for all, FunSQL.jl seems to be one.

FunSQL.jl allows you to build better queries than, say SQLAlchemy, but it doesn’t provide an Object-Relational Mapping. This package does
[…]
Status

  • Only supports Integer ids.
  • Only supports SQLite.

That package depends on DBInterface so it’s unclear to me why it doesn’t support all. Many databases support it, though notably not PostgreSQL (i.e. LibPq.jl).

There’s also “SearchLight is the ORM layer of Genie.jl” (it’s independent of Genie.jl by now actually), so I’m curious what people do use, what’s the best ORM. It has e.g. related SearchLightPostgreSQL.

I’ve worked on GitHub - JuliaData/Strapping.jl: Tools for mapping between Julia structs and 2D tabular data., which is a “less magical” kind of ORM in that it just does mapping/flattening of Julia domain objects (via StructTypes.jl) into a 2D “table” object that can then be written out to a database (ODBC.load!, MySQL.load!, SQLite.load), or any other Tables.jl sink (Arrow.write, CSV.write, JSONTables.arraytable, etc).

1 Like