Just to share the news with you, it seems GAMS has reinvented itself today, throwing away its archaic and odd language with the launch of GAMSpy, a library (and API) to write and solve mathematical optimization models directly in Python: https://www.gams.com/sales/gamspy_facts/
There is still very little out there, but I wonder how it stands in terms of expressiveness, as one of the mayor advantages of JuMP over Pyomo for me is the more concise syntax available thanks to Julia macros.
Also, at this point, one wonder if there is still space for a new paying optimization library, that need to be learn, when Pyomo and JuMP do already a good job.
You have always been able to combine JuMP with DataFrames.jl or a database, but it often requires a different modeling style compared with the ‘nested summation’ syntax you often see in math papers. See these tutorials for examples: