Module: Translink::DB

Defined in:
lib/translink/db.rb

Class Method Summary collapse

Class Method Details

.context(uri, options = {}) ⇒ Object



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
# File 'lib/translink/db.rb', line 3

def self.context uri, options = {}
  DataMapper.setup :default, uri
  DataMapper.repository :default do |repository|
    DataMapper.finalize
    repository.adapter.execute "      PRAGMA foreign_keys=ON;\n    SQL\n    if options[:migrate]\n      repository.adapter.execute <<-SQL\n        DROP TABLE IF EXISTS \"routes\";\n        CREATE TABLE \"routes\" (\n          \"route_id\" TEXT NOT NULL PRIMARY KEY UNIQUE,\n          \"short_name\" TEXT NOT NULL,\n          \"long_name\" TEXT NOT NULL,\n          \"route_type\" INTEGER NOT NULL\n        );\n\n        DROP TABLE IF EXISTS \"trips\";\n        CREATE TABLE \"trips\" (\n          \"trip_id\" INTEGER NOT NULL PRIMARY KEY UNIQUE,\n          \"direction\" INTEGER NOT NULL,\n          \"headsign\" TEXT NOT NULL,\n          \"route_id\" TEXT NOT NULL,\n          FOREIGN KEY (\"route_id\") REFERENCES \"routes\" (\"route_id\") ON DELETE CASCADE\n        );\n\n        CREATE INDEX \"index_trips_on_route_id\" ON \"trips\" (\"route_id\");\n\n        DROP TABLE IF EXISTS \"stop_times\";\n        CREATE TABLE \"stop_times\" (\n          \"arrival_time\" STRING NOT NULL,\n          \"stop_sequence\" INTEGER NOT NULL,\n          \"stop_id\" TEXT NOT NULL,\n          \"trip_id\" INTEGER NOT NULL,\n          PRIMARY KEY (\"arrival_time\", \"stop_id\", \"trip_id\"),\n          FOREIGN KEY (\"stop_id\") REFERENCES \"stops\" (\"stop_id\") ON DELETE RESTRICT,\n          FOREIGN KEY (\"trip_id\") REFERENCES \"trips\" (\"trip_id\") ON DELETE CASCADE\n        );\n\n        DROP TABLE IF EXISTS \"stops\";\n        CREATE TABLE \"stops\" (\n          \"stop_id\" TEXT NOT NULL PRIMARY KEY UNIQUE,\n          \"stop_name\" TEXT NOT NULL,\n          \"stop_lat\" REAL NOT NULL,\n          \"stop_lon\" REAL NOT NULL\n        );\n      SQL\n    end\n    yield if block_given?\n  end\nend\n"