This type of functionality could be provided by the schema inferers. Right now there’s no way of configuring them. You could try experimenting with a customized
TypeBuilder class which inferrers use. Here’s how its default implementation looks like.
You could subclass it and adjust its logic however you like, and register it for your database type:
class MyTypeBuilder < ROM::SQL::Schema::TypeBuilder
# go nuts
Unfortunately, it wasn’t designed with such adjustments in mind, so you will find yourself duplicating code and changing it. ie here we handle columns that allow null and there’s no way of adjusting just that bit. If we wanted to expose this kind of configuration, it would have to be provided through a nice public API, rather than subclassing and adding new methods.
Another option is to use configuration events to hook into schema setup and adjust schemas for all relations. ie here you can see how this is used in rom-sql.
Try to experiment with this and let me know if you have any questions.