[native] Change SQL errors log level.
- The SQL error itself is logged as 'info'.
- The 'transaction has been rolled back' message is logged as 'debug'.
These log entries should not be critical:
- If an error occur at the sql level, it will be transmitted as a CW error.
The exception is raised and handled in a higher level function, which will
decide if it is critical or not.
- Admitting that rolling-back automatically on errors is wanted in some
cases, it cannot be considered 'critical'. The caller will receive the
original exception anyway, it is its job to decide if it is critical or
not.
Closes #4801120
"""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