josephspurrier / gowebapp

Basic MVC Web Application in Go
MIT License
1.14k stars 197 forks source link

enhancement: use Bolt instead of SQLite, MySQL, or MongoDB #9

Closed cleesmith closed 8 years ago

cleesmith commented 8 years ago

While not typical, just using Bolt would make deployments have less dependencies and be simple to install ... more self contained. The database is similar to Mongo but not as robust, of course. I kind of started on it here ... it's just a thought, but I will probably end up with MySQL as that's commonly used and available. Ultimately, I would like to access data from ElasticSearch, but that still requires something to handle users, sessions, and other meta-data-like stuff. Thanks for this project.

josephspurrier commented 8 years ago

I do like the idea. I would like to remove SQLite and switch over to Bolt as the default while still supporting MySQL so the compile is faster. I'll look over your code and see how I can integrate it.

cleesmith commented 8 years ago

I noticed that when I completely removed everything referring to sqlite that it compiles faster (no C bindings) and the binary is a bit smaller. It's good to keep MySQL as it's everywhere and easy to use.

Also, as some uses aren't so public facing, I will probably remove the register/reCAPTCHA stuff in favor of having a default admin that manages users.

josephspurrier commented 8 years ago

Yeah, I remember reading SQLite has some C in it so removing is a good idea. It should be pretty easy to remove the register and reCAPTCHA pages and libraries. I tried to keep everything pretty separate so they are easy to add and remove.

cleesmith commented 8 years ago

It is well organized, despite not being a framework. Actually, it is pretty easy to understand if one is familiar with Ruby/Rails ... with regards to the folders (convention over configuration). I'm not sure if it is possible but having a folder in the template's folder that matches each controller would be nice too. I haven't tried that yet, and maybe that's too much like Rails. You actually have a very good start at having a framework similar to Rails but in Go ... well, without ActiveRecord of course. I think I've tried all of the Go web app frameworks out there and this one made sense right away (to me) and is minimal.

josephspurrier commented 8 years ago

Thanks. Looks like the ability to organize into folders was already available so I moved them for better organization. I'll work on Bolt in the next week.

cleesmith commented 8 years ago

Cool. I'll start watching this repo so I can keep up with the changes. Thanks.

josephspurrier commented 8 years ago

Removed SQLite, set Bolt as the default, and added MongoDB.

https://github.com/josephspurrier/gowebapp/commit/c44af62073c5c8174cf1a74c21b6a862027be8bc