2 # -*- coding: iso-8859-15 -*-
5 """This module contains code to make tha access of MediaWiki tables
6 easy. The module uses sqlalchemy to access the database.
8 from sqlalchemy import Table, Column, types
11 def page_table(metadata):
12 """Returns the sqlalchemy Table representing the "page" table in MediaWiki.
13 :param metadata: metadata = sqlalchemy.MetaData()
15 return Table("page", metadata,
16 Column("page_id", types.Integer, primary_key=True),
17 Column("page_namespace", types.Integer, nullable=False),
18 Column("page_title", types.Unicode(255), nullable=False),
19 Column("page_restrictions", types.Unicode, nullable=False),
20 Column("page_counter", types.Integer, nullable=False),
21 Column("page_is_redirect", types.Integer, nullable=False),
22 Column("page_is_new", types.Integer, nullable=False),
23 Column("page_random", types.Float, nullable=False),
24 Column("page_touched", types.Unicode(14), nullable=False),
25 Column("page_latest", types.Integer, nullable=False),
26 Column("page_len", types.Integer, nullable=False),
30 def revision_table(metadata):
31 """Returns the sqlalchemy Table representing the "revision" table in MediaWiki.
32 :param metadata: metadata = sqlalchemy.MetaData()
34 return Table("revision", metadata,
35 Column("rev_id", types.Integer, nullable=False, primary_key=True),
36 Column("rev_page", types.Integer, nullable=False, primary_key=True),
37 Column("rev_text_id", types.Integer, nullable=False),
38 Column("rev_comment", types.Unicode),
39 Column("rev_user", types.Integer, nullable=False),
40 Column("rev_user_text", types.Unicode(255), nullable=False),
41 Column("rev_timestamp", types.Unicode(14), nullable=False),
42 Column("rev_minor_edit", types.Integer, nullable=False),
43 Column("rev_deleted", types.Integer, nullable=False),
44 Column("rev_len", types.Integer, nullable=False),
45 Column("rev_parent_id", types.Integer, nullable=False),
49 def text_table(metadata):
50 """Returns the sqlalchemy Table representing the "text" table in MediaWiki.
51 :param metadata: metadata = sqlalchemy.MetaData()
53 return Table("text", metadata,
54 Column("old_id", types.Integer, primary_key=True),
55 Column("old_text", types.Unicode),
56 Column("old_flags", types.Unicode),
60 def categorylinks_table(metadata):
61 """Returns the sqlalchemy Table representing the "categorylinks" table in MediaWiki.
62 :param metadata: metadata = sqlalchemy.MetaData()
64 return Table("categorylinks", metadata,
65 Column("cl_from", types.Integer, nullable=False, primary_key=True),
66 Column("cl_to", types.Unicode(255), nullable=False, primary_key=True),
67 Column("cl_sortkey", types.Unicode, nullable=False),
68 Column("cl_timestamp", types.DateTime, nullable=False),