Passed
Push — master ( aeb165...d9ae97 )
by Dean
03:04
created

SchedulerJob

Size/Duplication

Total Lines 14
Duplicated Lines 0 %

Test Coverage

Coverage 0%
Metric Value
dl 0
loc 14
ccs 0
cts 10
cp 0
1
from plugin.models.core import db
2
3
from playhouse.apsw_ext import *
0 ignored issues
show
Coding Style introduced by
The usage of wildcard imports like playhouse.apsw_ext should generally be avoided.
Loading history...
4
5
6
def migrate(migrator, database):
0 ignored issues
show
Unused Code introduced by
The argument database seems to be unused.
Loading history...
7
    migrator.create_tables(
8
        SchedulerTask,
9
        SchedulerJob
10
    )
11
12
13
class Account(Model):
14
    class Meta:
15
        database = db
16
17
    name = CharField(null=True, unique=True)
18
    thumb = TextField(null=True)
19
20
21
class SchedulerTask(Model):
22
    class Meta:
23
        database = db
24
        db_table = 'scheduler.task'
25
26
    key = CharField(max_length=60, primary_key=True)
27
28
29
class SchedulerJob(Model):
30
    class Meta:
31
        database = db
32
        db_table = 'scheduler.job'
33
34
        primary_key = CompositeKey('account', 'task')
35
36
    account = ForeignKeyField(Account, 'scheduler_jobs')
37
    task = ForeignKeyField(SchedulerTask, 'scheduler_jobs')
38
39
    trigger = TextField()
40
41
    ran_at = DateTimeField(null=True)
42
    due_at = DateTimeField()
43
44
#
45
# Schema specification (for migration verification)
46
#
47
48
SPEC = {
49
    'scheduler.task': {
50
        'key':                      'VARCHAR(60) PRIMARY KEY NOT NULL'
51
    },
52
    'scheduler.job': {
53
        'account_id':               'INTEGER PRIMARY KEY NOT NULL',
54
        'task_id':                  'VARCHAR(60) PRIMARY KEY NOT NULL',
55
56
        'trigger':                  'TEXT NOT NULL',
57
58
        'ran_at':                   'DATETIME',
59
        'due_at':                   'DATETIME NOT NULL'
60
    }
61
}
62