micrate icon indicating copy to clipboard operation
micrate copied to clipboard

v0.14+ requires all dependencies (pg, mysql, sqlite3 + dev package)

Open ysbaddaden opened this issue 2 years ago • 2 comments
trafficstars

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.

ysbaddaden avatar May 09 '23 12:05 ysbaddaden

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.

hugopl avatar Oct 31 '23 14:10 hugopl

For posterity I looked into this a bit and there is no real good/simple solutions at the moment. My proposed solution would be:

  1. Remove the explicit deps
  2. Remove the postinstall script
  3. 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:.

Blacksmoke16 avatar Aug 17 '24 21:08 Blacksmoke16