Cannot connect after migrating old data

Asked by Laurie Savage

I have new machine with a working installation of SchoolTool 2 listening on host 0.0.0.0:7080. I renamed the data file to Data.fs.0 and moved the data file from Schooltool 1.4 into /var/lib/schooltool. Restarted the service and cannot connect. If I change paste.ini to host=127.0.0.1 I cannot access from localhost:7080 or 127.0.0.1:7080.

If I reinstall the empty, ST 2 database and restart the service I can access it again. I have tried chown schooltool:schooltool and checking the permissions with ls -l.

I have a term's worth of data that I don't want to lose!

Have you seen this before?

Question information

Language:
English Edit question
Status:
Answered
For:
SchoolTool Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Gediminas Paulauskas (menesis) said :
#1

schooltool server has not started for some reason. See /var/log/schooltool/paste.log (and error.log) and look for errors or exceptions at the end, paste them here.

Revision history for this message
Laurie Savage (sav-pvgc) said :
#2

The problem seems to be resulting from a difference in the expecte format of the database. Is there a conversion tool that I can use to update the older database to the newer format? I couldn't import the excel file exported from the earlier version of schooltool either. I don't have intermediate versions of schooltool any more to attempt a stepwise upgrade of the database.

Here are the logs you requested from my latest attempt to connect:

Paste.log
========
Reading configuration from /etc/schooltool/standard/schooltool.conf
INFO:zope.app.generations:main db: evolving in mode EVOLVEMINIMUM
INFO:zope.app.generations:main db/schooltool: currently at generation 35, targetting generation 38
ERROR:zope.app.generations:main db/schooltool: failed to evolve to generation 36
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/zope/app/generations/generations.py", line 494, in evolve
    manager.evolve(context, generation)
  File "/usr/lib/python2.7/dist-packages/zope/app/generations/generations.py", line 145, in evolve
    evolver.evolve(context)
  File "/usr/lib/python2.7/dist-packages/schooltool/generations/evolve36/__init__.py", line 37, in evolve
    evolveTimetables(app)
  File "/usr/lib/python2.7/dist-packages/schooltool/generations/evolve36/evolve.py", line 60, in evolveTimetables
    built = builder.build(app, BuildContext(shared=result))
  File "/usr/lib/python2.7/dist-packages/schooltool/generations/evolve36/timetable_builders.py", line 510, in build
    built = builder.build(timetable_root, context(app=app))
  File "/usr/lib/python2.7/dist-packages/schooltool/generations/evolve36/timetable_builders.py", line 464, in build
    schoolyear=schoolyear))
  File "/usr/lib/python2.7/dist-packages/schooltool/generations/evolve36/timetable_builders.py", line 422, in build
    period_map=built_periods.period_map))
  File "/usr/lib/python2.7/dist-packages/schooltool/generations/evolve36/timetable_builders.py", line 306, in build
    meeting_id = timetable.uniqueMeetingId(
AttributeError: 'Timetable' object has no attribute 'uniqueMeetingId'
Traceback (most recent call last):
  File "/usr/bin/paster", line 4, in <module>
    command.run()
  File "/usr/lib/python2.7/dist-packages/paste/script/command.py", line 104, in run
    invoke(command, command_name, options, args[1:])
  File "/usr/lib/python2.7/dist-packages/paste/script/command.py", line 143, in invoke
    exit_code = runner.run(args)
  File "/usr/lib/python2.7/dist-packages/paste/script/command.py", line 238, in run
    result = self.command()
  File "/usr/lib/python2.7/dist-packages/paste/script/serve.py", line 284, in command
    relative_to=base, global_conf=vars)
  File "/usr/lib/python2.7/dist-packages/paste/script/serve.py", line 321, in loadapp
    **kw)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 247, in loadapp
    return loadobj(APP, uri, name=name, **kw)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 272, in loadobj
    return context.create()
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 710, in create
    return self.object_type.invoke(self)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 146, in invoke
    return fix_call(context.object, context.global_conf, **context.local_conf)
  File "/usr/lib/python2.7/dist-packages/paste/deploy/util.py", line 56, in fix_call
    val = callable(*args, **kw)
  File "/usr/lib/python2.7/dist-packages/schooltool/paste/main.py", line 48, in schooltool_app_factory
    os.path.join(global_conf['here'], config_file))
  File "/usr/lib/python2.7/dist-packages/schooltool/paste/main.py", line 37, in __init__
    db = self.setup(options)
  File "/usr/lib/python2.7/dist-packages/schooltool/app/main.py", line 679, in setup
    notify(DatabaseOpened(db))
  File "/usr/lib/python2.7/dist-packages/zope/event/__init__.py", line 31, in notify
    subscriber(event)
  File "/usr/lib/python2.7/dist-packages/zope/component/event.py", line 24, in dispatch
    zope.component.subscribers(event, None)
  File "/usr/lib/python2.7/dist-packages/zope/component/_api.py", line 136, in subscribers
    return sitemanager.subscribers(objects, interface)
  File "/usr/lib/python2.7/dist-packages/zope/component/registry.py", line 321, in subscribers
    return self.adapters.subscribers(objects, provided)
  File "/usr/lib/python2.7/dist-packages/zope/interface/adapter.py", line 585, in subscribers
    subscription(*objects)
  File "/usr/lib/python2.7/dist-packages/zope/app/appsetup/bootstrap.py", line 175, in bootStrapSubscriber
    zope.event.notify(zope.processlifetime.DatabaseOpenedWithRoot(db))
  File "/usr/lib/python2.7/dist-packages/zope/event/__init__.py", line 31, in notify
    subscriber(event)
  File "/usr/lib/python2.7/dist-packages/zope/component/event.py", line 24, in dispatch
    zope.component.subscribers(event, None)
  File "/usr/lib/python2.7/dist-packages/zope/component/_api.py", line 136, in subscribers
    return sitemanager.subscribers(objects, interface)
  File "/usr/lib/python2.7/dist-packages/zope/component/registry.py", line 321, in subscribers
    return self.adapters.subscribers(objects, provided)
  File "/usr/lib/python2.7/dist-packages/zope/interface/adapter.py", line 585, in subscribers
    subscription(*objects)
  File "/usr/lib/python2.7/dist-packages/zope/app/generations/generations.py", line 521, in evolveMinimumSubscriber
    evolve(event.database, EVOLVEMINIMUM)
  File "/usr/lib/python2.7/dist-packages/zope/app/generations/generations.py", line 506, in evolve
    manager.generation)
zope.app.generations.interfaces.UnableToEvolve: (36, u'schooltool', 38)

Error.log
=======
2012-05-24 10:07:49,791 main db: evolving in mode EVOLVEMINIMUM
2012-05-24 10:07:49,792 main db/schooltool: currently at generation 35, targetting generation 38
2012-05-24 10:07:50,043 main db/schooltool: failed to evolve to generation 36
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/zope/app/generations/generations.py", line 494, in evolve
    manager.evolve(context, generation)
  File "/usr/lib/python2.7/dist-packages/zope/app/generations/generations.py", line 145, in evolve
    evolver.evolve(context)
  File "/usr/lib/python2.7/dist-packages/schooltool/generations/evolve36/__init__.py", line 37, in evolve
    evolveTimetables(app)
  File "/usr/lib/python2.7/dist-packages/schooltool/generations/evolve36/evolve.py", line 60, in evolveTimetables
    built = builder.build(app, BuildContext(shared=result))
  File "/usr/lib/python2.7/dist-packages/schooltool/generations/evolve36/timetable_builders.py", line 510, in build
    built = builder.build(timetable_root, context(app=app))
  File "/usr/lib/python2.7/dist-packages/schooltool/generations/evolve36/timetable_builders.py", line 464, in build
    schoolyear=schoolyear))
  File "/usr/lib/python2.7/dist-packages/schooltool/generations/evolve36/timetable_builders.py", line 422, in build
    period_map=built_periods.period_map))
  File "/usr/lib/python2.7/dist-packages/schooltool/generations/evolve36/timetable_builders.py", line 306, in build
    meeting_id = timetable.uniqueMeetingId(
AttributeError: 'Timetable' object has no attribute 'uniqueMeetingId'

Revision history for this message
Tom Hoffman (tom-hoffman) said :
#3

We released a fix for the related bug.

Can you help with this problem?

Provide an answer of your own, or ask Laurie Savage for more information if necessary.

To post a message you must log in.