amberframework / amber

A Crystal web framework that makes building applications fast, simple, and enjoyable. Get started with quick prototyping, less bugs, and blazing fast performance.
https://amberframework.org
MIT License
2.57k stars 205 forks source link

Feature/change default orm to jennifer #1289

Closed crimson-knight closed 1 year ago

crimson-knight commented 2 years ago

Description of the Change

This PR changes the default ORM to Jennifer, and integrates the CLI commands for Jennifer into the amber CLI tool.

A couple of nice changes:

Potential breaking change:

Benefits

Not having to solo-maintain an ORM and using an ORM that has more of the db-specific data types working (mostly looking at Postgres)

Possible Drawbacks

Currently, this tightly couples the Amber CLI tool with the Sam CLI tool provided by Jennifer. The Sam tool is pretty handy for rake/make-like jobs, so I'm pretty happy with doing this. I think there will be a lot of situations where other devs will want to run tasks (data migrations/alterations, etc). so this will be a handy improvement.

drujensen commented 2 years ago

Hi Seth. Thanks for submitting this PR. This is a very large PR and will take some time to review. I will give it a spin when I get a chance. Will you be able to update the documentation as well?

drujensen commented 2 years ago

Also, looks like the Dockerfile is still using crystal 1.0.0 and doesn't build.

crimson-knight commented 2 years ago

Thanks @drujensen for the review, you're right I haven't update the auth generator yet. I had forgotten about the docker file, but I will need to update that in a different PR since that's a different scope from this one.

I'll definitely get the documentation updated once this PR is done and I know the full extent of the changes.

crimson-knight commented 2 years ago

Oh yeah, FWIW a lot of the file changes are just tweaks suggested by Ameba so I could get the bin/amber_spec to pass.

crimson-knight commented 1 year ago

Closing this out in favor of a different approach that allows for any ORM to be used and connected to the generators/CLI tool