micrate
micrate copied to clipboard
v0.14+ requires all dependencies (pg, mysql, sqlite3 + dev package)
The development dependencies were moved back as hard dependencies in v0.14.0
To merely install the micrate shard to our projects, the development packages of sqlite3 MUST be installed, regardless of the actual need for sqlite3. If the external C library isn't installed, adding the micrate shard won't even install, since the postinstall script forces the creation of the bin/micrate binary.
This is #77 again.
I just hit this issue, my use case is a amber project that works on data created by a rails project, so the migrations are handled by rails and I don't even use micrate... so to avoid need to install a lot of libraries I don't need my workaround is to simply --skip-postinstall and --skip-executables.
For posterity I looked into this a bit and there is no real good/simple solutions at the moment. My proposed solution would be:
- Remove the explicit deps
- Remove the postinstall script
- Update docs to instruct users to create a src/micrate.cr file and require related DB shards and call entrypoint method. (could have this part be automated by the postinstall script), then add a target for it in
shard.yml
This means it won't be auto installed where you can just do ./bin/micrate anymore, but you only have to define that file/setup once so it isn't the end of the world. There is the argument that tools like this should be installed globally which would make things easier as well but :shrug:.