What an industry consumes and produces is ultimately determined in its updateFn. In the vanilla industries, the stockListConfig table is used as the basis for creating the rule.
Therefore, whenever an industry's updateFn is called, you are in a position to redefine what it is doing (assuming you have defined your own updateFn, rather than letting industryUtil.lua do it for you.)
This could be by way of a date determination, or by user input through menu parameters, or both, or something else entirely. You're still stuck with one input rule and one output rule at a time, but they can be changed easily enough.
The updateFn is called each time the user clicks on the industry's configuration menu, as well as when it is built. Also, when you use some type of script event to make a change to it.
@xmnovotny's Bulk upgrader for stations/industries set's the ownership of the station or industry to call its updateFn. This has the downside of charging the player with the maintenance costs of the industries, but you can avoid that by simply setting the maintenance costs to a nominal value.