I’m working on an app that I plan to convert to a standalone desktop app, as I’ve mentioned here before.
Some of what it needs to do could be well handled with a real SQL db, something minimal that could be included in the app install, but there are other alternatives too.
As an investigation, I installed cfmariadb via CommandBox. Installation seemed to mostly go ok, including a msg that it had been installed, However, I did get a msg while it was installing javaloader_v1.1, “box.json is missing so this isn’t really a package! I’ll install it anyway, but I’m not happy about it”. It ended by saying "“Eureka, ‘riaforge:javaloader’ has been installed!”
In any case, when I saw that the whole package was over 50 MB, I decided to go a different direction, so I tried to uninstall it, with “uninstall cfmariadb”, got this message: “Package [cfmariadb] skipped, it doesn’t appear to be installed.”
So now what? Eventually I’ll want to package this up as a standalone app, as per Anant Pradhan’s post (not really investigated yet), and I don’t want that big db to be part of the install. I’m not certain if it’s actually usable as-is or not, or what effect removing it from box.json has.
My apologies for all the questions, much of this is a new-world to me, though I’ve been doing cf for a long time.
You can just remove the entries from box.json without any worries (and remove any installed folders, of course). “box uninstall” is just a helper that will do that for you.
Thanks Dominic, but not quite.
The CFMariaDB install also modified or replaced several files within the app; it crashed at startup after I removed the box.json entries and the MariaDB directory.
Specifically, it actually replaced the contents of index.cfm and Application.cfc (completely disabling ColdBox!), and created MariaDB.cfc, RemoteService.cfc and mariadb.sample.properties.
I know this isn’t the place to take this complaint, but wow, what an inconsiderate project. This app isn’t under source control yet (poo on me, very early days though), but luckily IDEA had local history for the replaced files, so I could restore them from there.
Not a fan. On to looking into H2 for Lucee…
Just took a look at the wiki for CFMariaDB:
Did you follow the numbered steps? Looking at the instructions there, it looks like it’s not intended to be installed as a module of another project, but rather as an easy way to spin up a MariaDB instance using CommandBox - but still running under a separate Lucee instance.
I know this isn’t the place to take this complaint, but wow, what an inconsiderate project.
The project has clear instructions: https://bitbucket.org/hwsdev/cfmariadb/wiki/Home. Would have been worth playing around with it first in an empty directory as the wiki suggests. I happen to know that it was one of the first forgebox project for this developer who is utmost professional and very considerate. He’d take constructive feedback well.
Yes I see, thanks for pointing that out, my bad entirely, complete lack of RTFM on my part, just pushed the button.
I hadn’t run into any modules that need to be installed into a directory the CommandBox install script doesn’t know about, but then again, I’m a CommandBox newb, maybe it’s common.
In any case, H2 is a better fit for this project, looks like the jar is about 1.5 Megs, as opposed to ~50 for MariaDB. Not cfmariadb’s fault, just the nature of the db engines. My db needs for this project are modest, H2 should be fine.
Off topic of my original post, I don’t quite understand how H2 integrates with Lucee. My impression is that it’s not actually included in the CommandBox Luceee install, installing it through the Lucee admin like I did doesn’t just configure things, it actually downloads the database engine. I’m not sure how that will play with packaging this app as a standalone tool for non-developers, people who know nothing about Lucee/H2/etc. Might I be better off putting the H2 jar inside my app, and pointing the connection URL there? Would I need a separate driver too?
Thoughts on that are most welcome.
Thanks again for jumping in Dominic.