cubicweb/misc/cmp_schema.py
author Jérémy Bobbio <jeremy.bobbio@irq7.fr>
Thu, 13 Jun 2019 16:47:47 +0200
branch3.26
changeset 12701 d8c491c1e580
parent 11057 0b59724cb3f2
permissions -rw-r--r--
[pkg] Tidy substvars usage in control file The documentation package was missing a Built-Using field to record the provenance of the templates. Empty packages or meta packages do not require Depends on a specific Python version, so we can remove the relevant substvars.

"""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