datamodel.py

changeset 1
f9788970fa46
child 2
7378b802ddf8
equal deleted inserted replaced
0:659ab465152e 1:f9788970fa46
1 import sqlalchemy.ext.declarative
2 GtfsBase = sqlalchemy.ext.declarative.declarative_base(name = 'GtfsBase')
3
4 class GtfsRoute(GtfsBase):
5 __tablename__ = 'routes'
6 id = sqlalchemy.Column(sqlalchemy.String, primary_key = True)
7 reference = sqlalchemy.Column(sqlalchemy.String)
8 description = sqlalchemy.Column(sqlalchemy.String)
9 type = sqlalchemy.Column(sqlalchemy.Integer)
10
11 class GtfsShape(GtfsBase):
12 __tablename__ = 'shapes'
13 id = sqlalchemy.Column(sqlalchemy.String, primary_key = True)
14 length = sqlalchemy.Column(sqlalchemy.Numeric, default = 0)
15 shape_coordinates = sqlalchemy.Column(sqlalchemy.String)
16
17 class GtfsTrip(GtfsBase):
18 __tablename__ = 'trips'
19 id = sqlalchemy.Column(sqlalchemy.String, primary_key = True)
20 route_id = sqlalchemy.Column(sqlalchemy.String, sqlalchemy.ForeignKey(GtfsRoute.id))
21 service = sqlalchemy.Column(sqlalchemy.String)
22 shape_id = sqlalchemy.Column(sqlalchemy.String, sqlalchemy.ForeignKey(GtfsShape.id))
23 route = sqlalchemy.orm.relationship('GtfsRoute', foreign_keys = 'GtfsTrip.route_id')
24 shape = sqlalchemy.orm.relationship('GtfsShape', foreign_keys = 'GtfsTrip.shape_id')
25
26 class GtfsService(GtfsBase):
27 __tablename__ = 'services'
28 id = sqlalchemy.Column(sqlalchemy.String, primary_key = True)
29
30 class GtfsStop(GtfsBase):
31 __tablename__ = 'stops'
32 stop_id = sqlalchemy.Column(sqlalchemy.String, primary_key = True)
33 stop_name = sqlalchemy.Column(sqlalchemy.String)
34 stop_latitude = sqlalchemy.Column(sqlalchemy.Numeric)
35 stop_longitude = sqlalchemy.Column(sqlalchemy.Numeric)
36 stop_region = sqlalchemy.Column(sqlalchemy.String)
37 stop_region_major = sqlalchemy.Column(sqlalchemy.Boolean)
38
39 class GtfsRegion(GtfsBase):
40 # Not a gtfs data set, but the Gtfs prefix added for consistency
41 __tablename__ = 'regions'
42 region_name = sqlalchemy.Column(sqlalchemy.String, primary_key = True)
43 region_name_sv = sqlalchemy.Column(sqlalchemy.String)
44 region_name_en = sqlalchemy.Column(sqlalchemy.String)
45 region_name_ja = sqlalchemy.Column(sqlalchemy.String)
46 region_short_name = sqlalchemy.Column(sqlalchemy.String)
47 region_short_name_sv = sqlalchemy.Column(sqlalchemy.String)
48 region_short_name_en = sqlalchemy.Column(sqlalchemy.String)
49 region_short_name_ja = sqlalchemy.Column(sqlalchemy.String)
50 region_internal_name = sqlalchemy.Column(sqlalchemy.String)
51 region_internal_name_sv = sqlalchemy.Column(sqlalchemy.String)
52 region_internal_name_en = sqlalchemy.Column(sqlalchemy.String)
53 region_internal_name_ja = sqlalchemy.Column(sqlalchemy.String)
54 municipality = sqlalchemy.Column(sqlalchemy.String, nullable = False)
55 external = sqlalchemy.Column(sqlalchemy.Boolean)

mercurial