#!/usr/bin/python2.6 # -*- coding: iso-8859-15 -*- # $Id$ # $HeadURL$ """This module contains code to make the access of MediaWiki tables easy. The module uses sqlalchemy to access the database. """ from sqlalchemy import Table, Column, types def page_table(metadata): """Returns the sqlalchemy Table representing the "page" table in MediaWiki. :param metadata: metadata = sqlalchemy.MetaData() """ return Table("page", metadata, Column("page_id", types.Integer, primary_key=True), Column("page_namespace", types.Integer, nullable=False), Column("page_title", types.Unicode(255), nullable=False), Column("page_restrictions", types.Unicode, nullable=False), Column("page_counter", types.Integer, nullable=False), Column("page_is_redirect", types.Integer, nullable=False), Column("page_is_new", types.Integer, nullable=False), Column("page_random", types.Float, nullable=False), Column("page_touched", types.Unicode(14), nullable=False), Column("page_latest", types.Integer, nullable=False), Column("page_len", types.Integer, nullable=False), ) def revision_table(metadata): """Returns the sqlalchemy Table representing the "revision" table in MediaWiki. :param metadata: metadata = sqlalchemy.MetaData() """ return Table("revision", metadata, Column("rev_id", types.Integer, nullable=False, primary_key=True), Column("rev_page", types.Integer, nullable=False, primary_key=True), Column("rev_text_id", types.Integer, nullable=False), Column("rev_comment", types.Unicode), Column("rev_user", types.Integer, nullable=False), Column("rev_user_text", types.Unicode(255), nullable=False), Column("rev_timestamp", types.Unicode(14), nullable=False), Column("rev_minor_edit", types.Integer, nullable=False), Column("rev_deleted", types.Integer, nullable=False), Column("rev_len", types.Integer, nullable=False), Column("rev_parent_id", types.Integer, nullable=False), ) def text_table(metadata): """Returns the sqlalchemy Table representing the "text" table in MediaWiki. :param metadata: metadata = sqlalchemy.MetaData() """ return Table("text", metadata, Column("old_id", types.Integer, primary_key=True), Column("old_text", types.Unicode), Column("old_flags", types.Unicode), ) def categorylinks_table(metadata): """Returns the sqlalchemy Table representing the "categorylinks" table in MediaWiki. :param metadata: metadata = sqlalchemy.MetaData() """ return Table("categorylinks", metadata, Column("cl_from", types.Integer, nullable=False, primary_key=True), Column("cl_to", types.Unicode(255), nullable=False, primary_key=True), Column("cl_sortkey", types.Unicode, nullable=False), Column("cl_timestamp", types.DateTime, nullable=False), )