本文整理汇总了Python中trac.db.DatabaseManager.alter_column_types方法的典型用法代码示例。如果您正苦于以下问题:Python DatabaseManager.alter_column_types方法的具体用法?Python DatabaseManager.alter_column_types怎么用?Python DatabaseManager.alter_column_types使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类trac.db.DatabaseManager
的用法示例。
在下文中一共展示了DatabaseManager.alter_column_types方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: do_upgrade
# 需要导入模块: from trac.db import DatabaseManager [as 别名]
# 或者: from trac.db.DatabaseManager import alter_column_types [as 别名]
def do_upgrade(env, ver, cursor):
"""Convert time values from integer seconds to integer microseconds."""
tables = [
('attachment', {'time': ('int', 'int64')}),
('wiki', {'time': ('int', 'int64')}),
('revision', {'time': ('int', 'int64')}),
('ticket', {'time': ('int', 'int64'),
'changetime': ('int', 'int64')}),
('ticket_change', {'time': ('int', 'int64')}),
('milestone', {'due': ('int', 'int64'),
'completed': ('int', 'int64')}),
('version', {'time': ('int', 'int64')}),
]
db_connector, _ = DatabaseManager(env).get_connector()
db = env.get_db_cnx()
for table, columns in tables:
# Alter column types
for sql in db_connector.alter_column_types(table, columns):
cursor.execute(sql)
# Convert timestamps to microseconds
cursor.execute("UPDATE %s SET %s" % (table,
', '.join("%s=%s*1000000" % (column, column)
for column in columns)))
# Convert comment edit timestamps to microseconds
cursor.execute("UPDATE ticket_change SET newvalue=%s*1000000 "
"WHERE field %s" % (db.cast('newvalue', 'int64'),
db.like()),
('_comment%',))