first migration (with favorites) basically working
This commit is contained in:
parent
382ffe2e28
commit
d6666c166f
2 changed files with 41 additions and 0 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -3,6 +3,7 @@
|
||||||
ajax/dojo/*
|
ajax/dojo/*
|
||||||
build/
|
build/
|
||||||
dist/
|
dist/
|
||||||
|
*.swp
|
||||||
*.egg-info
|
*.egg-info
|
||||||
*.project
|
*.project
|
||||||
*.pydevproject
|
*.pydevproject
|
||||||
|
|
40
tracking/migration.py
Normal file
40
tracking/migration.py
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
# cybertools.tracking.migration
|
||||||
|
|
||||||
|
"""Tools for migration ZODB-/BTree-based tracks to SQL-base records."""
|
||||||
|
|
||||||
|
from datetime import datetime
|
||||||
|
import time
|
||||||
|
|
||||||
|
import config
|
||||||
|
from cco.storage.common import Context, getEngine
|
||||||
|
from cco.storage.tracking import record
|
||||||
|
from loops.config.base import LoopsOptions
|
||||||
|
|
||||||
|
|
||||||
|
def migrate(loopsRoot, recFolderName, storageFactory=record.Storage):
|
||||||
|
rf = loopsRoot.getRecordManager().get(recFolderName)
|
||||||
|
if rf is None:
|
||||||
|
print('*** ERROR: folder %r not found!' % recFolderName)
|
||||||
|
return
|
||||||
|
options = LoopsOptions(loopsRoot)
|
||||||
|
print('*** database:', config.dbname, config.dbuser, config.dbpassword)
|
||||||
|
schema = options('cco.storage.schema') or None
|
||||||
|
if schema is not None:
|
||||||
|
schema = schema[0]
|
||||||
|
print('*** schema:', schema)
|
||||||
|
context = Context(getEngine(config.dbengine, config.dbname,
|
||||||
|
config.dbuser, config.dbpassword,
|
||||||
|
host=config.dbhost, port=config.dbport),
|
||||||
|
schema=schema)
|
||||||
|
storage = storageFactory(context)
|
||||||
|
for id, inTrack in rf.items():
|
||||||
|
#ts = time.mktime(inTrack.timeStamp.timetuple())
|
||||||
|
ts = datetime.fromtimestamp(inTrack.timeStamp)
|
||||||
|
print('*** in:', id, inTrack)
|
||||||
|
head = [inTrack.metadata[k] for k in storage.trackFactory.headFields]
|
||||||
|
print('*** out:', head, ts)
|
||||||
|
track = storage.trackFactory(*head, trackId=int(id),
|
||||||
|
timeStamp=ts, data=inTrack.data)
|
||||||
|
storage.upsert(track)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue