summaryrefslogtreecommitdiff
path: root/tools/sqlite_create.py
blob: 77cb8674201bae503f852e983ca64c0de6748d16 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# HISTORICAL USE ONLY

# IS THE CODE THAT USED TO CONSTRUCT THE SQLITE DATABASE

# IS NOT COMPLETE

# HISTORICAL USE ONLY
cursor.execute('''
    create table ids (
        name varchar,
        num varchar
    )''')
cursor.execute('''
    create table packages (
        name varchar,
        stable_version varchar
    )''')
cursor.execute('''
    create table releases (
        name varchar,
        version varchar,
        author varchar,
        author_email varchar,
        maintainer varchar,
        maintainer_email varchar,
        home_page varchar,
        license varchar,
        summary varchar,
        description varchar,
        keywords varchar,
        platform varchar,
        download_url varchar,
        _pypi_ordering varchar,
        _pypi_hidden varchar
    )''')
cursor.execute('''
    create table trove_classifiers (
        id varchar,
        classifier varchar
    )''')
cursor.execute('''
    create table release_classifiers (
        name varchar,
        version varchar,
        trove_id varchar
    )''')
cursor.execute('''
    create table journals (
        id integer primary key autoincrement,
        name varchar,
        version varchar,
        action varchar,
        submitted_date timestamp,
        submitted_by varchar,
        submitted_from varchar
    )''')
cursor.execute('''
    create table users (
        name varchar,
        password varchar,
        email varchar,
        public_key varchar
    )''')
cursor.execute('''
    create table rego_otk (
        name varchar,
        otk varchar
    )''')
cursor.execute('''
    create table roles (
        role_name varchar,
        user_name varchar,
        package_name varchar
    )''')

# init the id counter
cursor.execute('''insert into ids (name, num) values
    ('trove_classifier', 1)''')

# indexes
SQLs = [
"create index ids_name_idx on ids(name)",
"create index journals_name_idx on journals(name)",
"create index journals_version_idx on journals(version)",
"create index packages_name_idx on packages(name)",
"create index rego_otk_name_idx on rego_otk(name)",
"create index reset_otk_name_idx on reset_otk(name)",
"create index reset_otk_otk_idx on reset_otk(otk)",
"create index rel_class_name_idx on release_classifiers(name)",
"create index rel_class_trove_id_idx on "
    "release_classifiers(trove_id)",
"create index rel_class_version_id_idx on "
    "release_classifiers(version)",
"create index release_name_idx on releases(name)",
"create index release_pypi_hidden_idx on releases(_pypi_hidden)",
"create index release_version_idx on releases(version)",
"create index roles_pack_name_idx on roles(package_name)",
"create index roles_user_name_idx on roles(user_name)",
"create index trove_class_class_idx on "
    "trove_classifiers(classifier)",
"create index trove_class_id_idx on trove_classifiers(id)",
"create index users_email_idx on users(email)",
"create index users_name_idx on users(name)",
]
for sql in SQLs:
    cursor.execute(sql)

# admin user
adminpw = ''.join([random.choice(chars) for x in range(10)])
adminpw = sha.sha(adminpw).hexdigest()
cursor.execute('''
    insert into users (name, password, email) values
    ('admin', '%s', NULL)
    '''%adminpw)
cursor.execute('''
    insert into roles (user_name, role_name, package_name) values
    ('admin', 'Admin', NULL)
    ''')