On Thursday, 3 May 2018 at 23:05:02 UTC, Matthias Klumpp wrote:
On Thursday, 3 May 2018 at 21:28:18 UTC, bauss wrote:
On Thursday, 3 May 2018 at 18:01:07 UTC, Matthias Klumpp wrote:
DiamondMVC looks nice, but I would need PostgreSQL support for sure.
Therefore, I think there are three options:
1) Extend the DiamondMVC ORM to support missing features that Hibernated has (maybe make it use ddbc as backend?) 2) Revive Hibernated - contacting Vadim Lopatin would be key for that, and maybe the project could be maintained in the dlang-community organization (although there are competing projects for it...) 3) Find a different D ORM that does the job and expand it to include missing features.

Yes, I completely agree with PostgreSQL support. It's really important to me getting that working, as well MSSQL. I was hoping I could find time this weekend to actually do that.

Would it maybe be easier for you to base on ddbc[1] or another existing abstraction layer for database abstraction? Ddbc is pretty neat, and even has support for reading structs directly from the database.


Perhaps, but it'd have to be a forked version as I don't really want to depend on something that isn't updated regularly.

ddbc's last commit was a year ago.

I can't seem to find a license for it though?


[1]: https://github.com/buggins/ddbc

Perhaps I will end up having another "optional" dependency to it as a temporary until I can have a better implementation or something.

The frontend part of postgresql is almost finished, it's just having the postgresql driver working properly, which is where it's frozen right now.

Hmm... Does any public code for that exist already that I could play around with? Unfortunately, I have a few more unusual requirements for Postgres, like:
 * UUIDs as primary keys, instead of integers

As far as I remember the implementation of @DbId in Diamond, then it supports whatever type.

Diamond doesn't care much about what type your primary key is.

I will make sure that's how it function of course, if it currently doesn't behave like it, but I'm pretty sure it does.

* Ability to register custom datatypes with the ORM (version numbers in this case, the ORM can view them as text, but the database has a special type for them)

That could be done with some attribute that lets you handle columns yourself.

Do you have a good name for it?

I was thinking @DbProxy and then the function would be something like:

@DbProxy(functionName) string field;

...

auto functionName(RawDbType type)
{
return the new datatype that matches the field with the @DbProxy attribute.
}

* Obviously the usual ORM stuff, one-to-many, many-to-many, etc. relations


Yes, relations is one thing I haven't added and I have been wanting to do it for a while.

I will definitely look into having it added as well.

(Obviously not a must-have list, I added support for custom datatypes to my ddbc fork as well, because it's not really a feature many people need)


Well, that's kind of the key to most of the development in Diamond.

I usually add functionality that isn't widely used and in most cases people implement it themselves ex. the whole diamond.seo is not usually something a framework has.

Diamond is a neat project, I played around with it about half a year ago, but didn't test the ORM part at all back then.

It wasn't that good back then and has improved a lot since, as well many other parts of Diamond. Over the past half year it has grown rapidly, both in stability and functionality.

Reply via email to