$ conda update -c conda-forge message-ix
We have revamped our versioning system. If you install from source (i.e., from the source code in the github repository and not from conda), you may have to uninstall your current version. This only needs to be done once, as the updated versioning system takes care of this issue in the future.
To do so, try:
$ pip uninstall ixmp
If this does not work, find out where the installation is with
$ python -c 'import ixmp; print(ixmp.__version__)'
and manually remove any folder starting with 'ixmp'.
ixmp.Scenario
with scheme=='MESSAGE'
mp.Scenario(...)
to ixmp.Scenario(mp, ...)
has_solution()
, rename kwargs to ..._solution
This patch introduces a few backwards-incompatible changes to database
management.
If you see an error message like:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
usr/local/lib/python2.7/site-packages/ixmp/core.py:81: in __init__
self._jobj = java.ixmp.Platform("Python", dbprops)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <jpype._jclass.at.ac.iiasa.ixmp.Platform object at 0x7ff1a8e98410>
args = ('Python', '/tmp/kH07wz/test.properties')
def _javaInit(self, *args):
object.__init__(self)
if len(args) == 1 and isinstance(args[0], tuple) \
and args[0][0] is _SPECIAL_CONSTRUCTOR_KEY:
self.__javaobject__ = args[0][1]
else:
self.__javaobject__ = self.__class__.__javaclass__.newClassInstance(
> *args)
E org.flywaydb.core.api.FlywayExceptionPyRaisable: org.flywaydb.core.api.FlywayException: Validate failed: Migration checksum mismatch for migration 1
E -> Applied to database : 1588531206
E -> Resolved locally : 822227094
Then you need to update your local database. There are two methods to do so:
~/.local/ixmp/localdb/
.If you see an error message like:
usr/local/lib/python2.7/site-packages/jpype/_jclass.py:111: at.ac.iiasa.ixmp.exceptions.IxExceptionPyRaisable
---------------------------- Captured stdout setup -----------------------------
2018-11-13 08:15:17,410 ERROR at.ac.iiasa.ixmp.database.DbConfig:357 - missing property 'config.server.config' in /tmp/hhvE1o/test.properties
2018-11-13 08:15:17,412 ERROR at.ac.iiasa.ixmp.database.DbConfig:357 - missing property 'config.server.password' in /tmp/hhvE1o/test.properties
2018-11-13 08:15:17,412 ERROR at.ac.iiasa.ixmp.database.DbConfig:357 - missing property 'config.server.username' in /tmp/hhvE1o/test.properties
2018-11-13 08:15:17,413 ERROR at.ac.iiasa.ixmp.database.DbConfig:357 - missing property 'config.server.url' in /tmp/hhvE1o/test.properties
------------------------------ Captured log setup ------------------------------
core.py 80 INFO launching ixmp.Platform using config file at '/tmp/hhvE1o/test.properties'
_________________ ERROR at setup of test_add_spatial_multiple __________________
@pytest.fixture(scope="session")
def test_mp():
test_props = create_local_testdb()
# start jvm
ixmp.start_jvm()
# launch Platform and connect to testdb (reconnect if closed)
> mp = ixmp.Platform(test_props)
Then you need to update your property configuration file. The old file looks like
config.name = message_ix_test_db@local
jdbc.driver.1 = org.hsqldb.jdbcDriver
jdbc.url.1 = jdbc:hsqldb:file:/path/to/database
jdbc.user.1 = ixmp
jdbc.pwd.1 = ixmp
jdbc.driver.2 = org.hsqldb.jdbcDriver
jdbc.url.2 = jdbc:hsqldb:file:/path/to/database
jdbc.user.2 = ixmp
jdbc.pwd.2 = ixmp
The new file should look like
config.name = message_ix_test_db@local
jdbc.driver = org.hsqldb.jdbcDriver
jdbc.url = jdbc:hsqldb:file:/path/to/database
jdbc.user = ixmp
jdbc.pwd = ixmp
PRICE_EMISSION
message_ix.Scenariovintage_active_years()
now limits active years to those after the first model year or the years of a certain technology vintagemessage_ix.Scenario.solve()
uses 'MESSAGE' by default, but can be provided other model namesrename()
function can optionally keep old values in the model (i.e., copy vs. copy-with-replace)