Hi,

2011/10/23 Nathan Jones <nat...@ncjones.com>:
> Thanks guys for the sample data files. I have now verified the upgrade
> to version 1.9.0 works from 1.7.1, 1.7.2 and 1.8.0 with records
> containing laps.
>
> There's a couple of significant changes I have just committed related
> to the data upgrade functionality:
>
> 1. I have deleted the "check" start up option and removed the
> checkDBIntegrity function (r903). This is redundant now that we have a
> proper data upgrade mechanism.
> 2. Upgrading from version 1.7.0 or earlier will fail cleanly (r904).
> Previously the behaviour was likely to leave the DB in a corrupt
> state.
> 3. I have split the "add column" and "populate data" stages of two of
> the upgrade scripts to minimise the chance of a user ending up with a
> corrupt database if an upgrade fails (r906). I wanted to use
> transactions to achieve this but I suspect you cannot rollback
> executed DDL statements.
>
> This last change meant the DB version numbering had to change -
> version 12 has been renumbered to version 14. Normally when this
> happens you you would need to change the migrate_version value from 12
> to 14 in your DB to avoid an upgrade failure the first time you launch
> after updating. In this case though the last two upgrade scripts are
> safe to run twice so you won't need to do anything.
>
> With these changes I am happy for 1.9.0 to be released.

Thanks Nathan for your work ;)

> Shall we organise some smoke testing?

Yep. I have just updated from svn to see last changes, but pytrainer
refuses to start:

$ pytrainer
running pytrainer from egg installation
data_path: /usr/share/pytrainer/
gettext_path: /usr/share/locale
site_path: /usr/lib/python2.7/site-packages
Traceback (most recent call last):
  File "/usr/bin/pytrainer", line 102, in <module>
    main()
  File "/usr/bin/pytrainer", line 99, in main
    pytrainer = pyTrainer(None, data_path)
  File "/usr/lib/python2.7/site-packages/pytrainer/main.py", line 79,
in __init__
    initialize_data(self.ddbb, self.environment.conf_dir)
  File "/usr/lib/python2.7/site-packages/pytrainer/upgrade/data.py",
line 31, in initialize_data
    InstalledData(migratable_db, ddbb,
LegacyVersionProvider(conf_dir),
UpgradeContext(conf_dir)).update_to_current()
  File "/usr/lib/python2.7/site-packages/pytrainer/upgrade/data.py",
line 63, in update_to_current
    data_state = self.get_state()
  File "/usr/lib/python2.7/site-packages/pytrainer/upgrade/data.py",
line 73, in get_state
    version = self.get_version()
  File "/usr/lib/python2.7/site-packages/pytrainer/upgrade/data.py",
line 99, in get_version
    if self.is_versioned():
  File "/usr/lib/python2.7/site-packages/pytrainer/upgrade/data.py",
line 132, in is_versioned
    return self._migratable_db.is_versioned()
  File "/usr/lib/python2.7/site-packages/pytrainer/upgrade/migratedb.py",
line 59, in is_versioned
    self.get_version()
  File "/usr/lib/python2.7/site-packages/pytrainer/upgrade/migratedb.py",
line 68, in get_version
    return db_version(self._db_url, self._repository_path)
  File "<string>", line 2, in db_version
  File "/usr/lib/python2.7/site-packages/migrate/versioning/util/__init__.py",
line 160, in with_engine
    return f(*a, **kw)
  File "/usr/lib/python2.7/site-packages/migrate/versioning/api.py",
line 147, in db_version
    schema = ControlledSchema(engine, repository)
  File "/usr/lib/python2.7/site-packages/migrate/versioning/schema.py",
line 26, in __init__
    repository = Repository(repository)
  File "/usr/lib/python2.7/site-packages/migrate/versioning/repository.py",
line 80, in __init__
    self._versions))
  File "/usr/lib/python2.7/site-packages/migrate/versioning/version.py",
line 83, in __init__
    self.versions[VerNum(num)] = Version(num, path, files)
  File "/usr/lib/python2.7/site-packages/migrate/versioning/version.py",
line 153, in __init__
    self.add_script(os.path.join(path, script))
  File "/usr/lib/python2.7/site-packages/migrate/versioning/version.py",
line 174, in add_script
    self._add_script_py(path)
  File "/usr/lib/python2.7/site-packages/migrate/versioning/version.py",
line 197, in _add_script_py
    'per version, but you have: %s and %s' % (self.python, path))
migrate.versioning.exceptions.ScriptError: You can only have one
Python script per version, but you have:
/usr/lib/python2.7/site-packages/pytrainer/upgrade/versions/011_populate_lap_details.py
and 
/usr/lib/python2.7/site-packages/pytrainer/upgrade/versions/011_remove_db_version.py
$

It looks like we should merge both scripts or named them as different
versions, right?

Regards,

David

------------------------------------------------------------------------------
The demand for IT networking professionals continues to grow, and the
demand for specialized networking skills is growing even more rapidly.
Take a complimentary Learning@Cisco Self-Assessment and learn 
about Cisco certifications, training, and career opportunities. 
http://p.sf.net/sfu/cisco-dev2dev
_______________________________________________
Pytrainer-devel mailing list
Pytrainer-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pytrainer-devel

Reply via email to