misc/cmp_schema.py
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Fri, 16 Sep 2011 12:48:26 +0200
changeset 7800 ea496a3ed703
parent 5372 b74eed7e8b37
permissions -rw-r--r--
[user management] users and groups management now really lead to that (closes #1931478) ie, one tab for users, another for groups. By default the groups tab simply list existing groups (with the number of users they count), and propose to create a new group.

"""This module compare the Schema on the file system to the one in the database"""

from cStringIO import StringIO
from cubicweb.web.schemaviewer import SchemaViewer
from logilab.common.ureports import TextWriter
import difflib

viewer = SchemaViewer()
layout_db = viewer.visit_schema(schema, display_relations=True)
layout_fs = viewer.visit_schema(fsschema, display_relations=True)
writer = TextWriter()
stream_db = StringIO()
stream_fs = StringIO()
writer.format(layout_db, stream=stream_db)
writer.format(layout_fs, stream=stream_fs)

stream_db.seek(0)
stream_fs.seek(0)
db = stream_db.getvalue().splitlines()
fs = stream_fs.getvalue().splitlines()
open('db_schema.txt', 'w').write(stream_db.getvalue())
open('fs_schema.txt', 'w').write(stream_fs.getvalue())
#for diff in difflib.ndiff(fs, db):
#    print diff