Passed
Pull Request — dev (#82)
by Stephan
01:10
created

downgrade()   B

Complexity

Conditions 1

Size

Total Lines 89
Code Lines 72

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 72
nop 0
dl 0
loc 89
rs 7.9163
c 0
b 0
f 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
"""Create the OpenStreetMap database structure
2
3
Revision ID: 3aea51f86ebf
4
Revises: 79833aa6bc04
5
Create Date: 2021-01-10 20:52:22.884864+00:00
6
7
"""
8
from alembic import op
9
from sqlalchemy.dialects import postgresql
10
import sqlalchemy as sa
11
12
# Revision identifiers, used by Alembic.
13
revision = "3aea51f86ebf"
14
down_revision = "79833aa6bc04"
15
branch_labels = None
16
depends_on = None
17
18
19
def upgrade():
20
    # ### commands auto generated by Alembic - please adjust! ###
21
    op.create_table(
22
        "osm_line",
23
        sa.Column("osm_id", sa.BigInteger(), nullable=True),
24
        sa.Column("access", sa.Text(), nullable=True),
25
        sa.Column("addr:housename", sa.Text(), nullable=True),
26
        sa.Column("addr:housenumber", sa.Text(), nullable=True),
27
        sa.Column("addr:interpolation", sa.Text(), nullable=True),
28
        sa.Column("admin_level", sa.Text(), nullable=True),
29
        sa.Column("aerialway", sa.Text(), nullable=True),
30
        sa.Column("aeroway", sa.Text(), nullable=True),
31
        sa.Column("amenity", sa.Text(), nullable=True),
32
        sa.Column("area", sa.Text(), nullable=True),
33
        sa.Column("barrier", sa.Text(), nullable=True),
34
        sa.Column("bicycle", sa.Text(), nullable=True),
35
        sa.Column("brand", sa.Text(), nullable=True),
36
        sa.Column("bridge", sa.Text(), nullable=True),
37
        sa.Column("boundary", sa.Text(), nullable=True),
38
        sa.Column("building", sa.Text(), nullable=True),
39
        sa.Column("construction", sa.Text(), nullable=True),
40
        sa.Column("covered", sa.Text(), nullable=True),
41
        sa.Column("culvert", sa.Text(), nullable=True),
42
        sa.Column("cutting", sa.Text(), nullable=True),
43
        sa.Column("denomination", sa.Text(), nullable=True),
44
        sa.Column("disused", sa.Text(), nullable=True),
45
        sa.Column("embankment", sa.Text(), nullable=True),
46
        sa.Column("foot", sa.Text(), nullable=True),
47
        sa.Column("generator:source", sa.Text(), nullable=True),
48
        sa.Column("harbour", sa.Text(), nullable=True),
49
        sa.Column("highway", sa.Text(), nullable=True),
50
        sa.Column("historic", sa.Text(), nullable=True),
51
        sa.Column("horse", sa.Text(), nullable=True),
52
        sa.Column("intermittent", sa.Text(), nullable=True),
53
        sa.Column("junction", sa.Text(), nullable=True),
54
        sa.Column("landuse", sa.Text(), nullable=True),
55
        sa.Column("layer", sa.Text(), nullable=True),
56
        sa.Column("leisure", sa.Text(), nullable=True),
57
        sa.Column("line", sa.Text(), nullable=True),
58
        sa.Column("lock", sa.Text(), nullable=True),
59
        sa.Column("man_made", sa.Text(), nullable=True),
60
        sa.Column("military", sa.Text(), nullable=True),
61
        sa.Column("motorcar", sa.Text(), nullable=True),
62
        sa.Column("name", sa.Text(), nullable=True),
63
        sa.Column("natural", sa.Text(), nullable=True),
64
        sa.Column("office", sa.Text(), nullable=True),
65
        sa.Column("oneway", sa.Text(), nullable=True),
66
        sa.Column("operator", sa.Text(), nullable=True),
67
        sa.Column("place", sa.Text(), nullable=True),
68
        sa.Column("population", sa.Text(), nullable=True),
69
        sa.Column("power", sa.Text(), nullable=True),
70
        sa.Column("power_source", sa.Text(), nullable=True),
71
        sa.Column("public_transport", sa.Text(), nullable=True),
72
        sa.Column("railway", sa.Text(), nullable=True),
73
        sa.Column("ref", sa.Text(), nullable=True),
74
        sa.Column("religion", sa.Text(), nullable=True),
75
        sa.Column("route", sa.Text(), nullable=True),
76
        sa.Column("service", sa.Text(), nullable=True),
77
        sa.Column("sidewalk", sa.Text(), nullable=True),
78
        sa.Column("shop", sa.Text(), nullable=True),
79
        sa.Column("sport", sa.Text(), nullable=True),
80
        sa.Column("surface", sa.Text(), nullable=True),
81
        sa.Column("toll", sa.Text(), nullable=True),
82
        sa.Column("tourism", sa.Text(), nullable=True),
83
        sa.Column("tower:type", sa.Text(), nullable=True),
84
        sa.Column("tracktype", sa.Text(), nullable=True),
85
        sa.Column("tunnel", sa.Text(), nullable=True),
86
        sa.Column("water", sa.Text(), nullable=True),
87
        sa.Column("waterway", sa.Text(), nullable=True),
88
        sa.Column("wetland", sa.Text(), nullable=True),
89
        sa.Column("width", sa.Text(), nullable=True),
90
        sa.Column("wood", sa.Text(), nullable=True),
91
        sa.Column("z_order", sa.Integer(), nullable=True),
92
        sa.Column("way_area", sa.Float(), nullable=True),
93
        sa.Column("abandoned:aeroway", sa.Text(), nullable=True),
94
        sa.Column("abandoned:amenity", sa.Text(), nullable=True),
95
        sa.Column("abandoned:building", sa.Text(), nullable=True),
96
        sa.Column("abandoned:landuse", sa.Text(), nullable=True),
97
        sa.Column("abandoned:power", sa.Text(), nullable=True),
98
        sa.Column("area:highway", sa.Text(), nullable=True),
99
        sa.Column(
100
            "tags", postgresql.HSTORE(text_type=sa.Text()), nullable=True
101
        ),
102
        sa.Column(
103
            "geom",
104
            geoalchemy2.types.Geometry(geometry_type="LINESTRING", srid=3857),
0 ignored issues
show
Comprehensibility Best Practice introduced by
The variable geoalchemy2 does not seem to be defined.
Loading history...
105
            nullable=True,
106
        ),
107
        sa.Column(
108
            "gid",
109
            sa.Integer(),
110
            server_default=sa.text(
111
                "nextval('openstreetmap.osm_line_gid_seq'::regclass)"
112
            ),
113
            nullable=False,
114
        ),
115
        sa.PrimaryKeyConstraint("gid"),
116
        schema="openstreetmap",
117
    )
118
    op.create_index(
119
        op.f("ix_openstreetmap_osm_line_geom"),
120
        "osm_line",
121
        ["geom"],
122
        unique=False,
123
        schema="openstreetmap",
124
    )
125
    op.create_index(
126
        op.f("ix_openstreetmap_osm_line_tags"),
127
        "osm_line",
128
        ["tags"],
129
        unique=False,
130
        schema="openstreetmap",
131
    )
132
    op.create_table(
133
        "osm_nodes",
134
        sa.Column("id", sa.BigInteger(), nullable=False),
135
        sa.Column("lat", sa.Integer(), nullable=False),
136
        sa.Column("lon", sa.Integer(), nullable=False),
137
        sa.PrimaryKeyConstraint("id"),
138
        schema="openstreetmap",
139
    )
140
    op.create_table(
141
        "osm_point",
142
        sa.Column("osm_id", sa.BigInteger(), nullable=True),
143
        sa.Column("access", sa.Text(), nullable=True),
144
        sa.Column("addr:housename", sa.Text(), nullable=True),
145
        sa.Column("addr:housenumber", sa.Text(), nullable=True),
146
        sa.Column("addr:interpolation", sa.Text(), nullable=True),
147
        sa.Column("admin_level", sa.Text(), nullable=True),
148
        sa.Column("aerialway", sa.Text(), nullable=True),
149
        sa.Column("aeroway", sa.Text(), nullable=True),
150
        sa.Column("amenity", sa.Text(), nullable=True),
151
        sa.Column("area", sa.Text(), nullable=True),
152
        sa.Column("barrier", sa.Text(), nullable=True),
153
        sa.Column("bicycle", sa.Text(), nullable=True),
154
        sa.Column("brand", sa.Text(), nullable=True),
155
        sa.Column("bridge", sa.Text(), nullable=True),
156
        sa.Column("boundary", sa.Text(), nullable=True),
157
        sa.Column("building", sa.Text(), nullable=True),
158
        sa.Column("capital", sa.Text(), nullable=True),
159
        sa.Column("construction", sa.Text(), nullable=True),
160
        sa.Column("covered", sa.Text(), nullable=True),
161
        sa.Column("culvert", sa.Text(), nullable=True),
162
        sa.Column("cutting", sa.Text(), nullable=True),
163
        sa.Column("denomination", sa.Text(), nullable=True),
164
        sa.Column("disused", sa.Text(), nullable=True),
165
        sa.Column("ele", sa.Text(), nullable=True),
166
        sa.Column("embankment", sa.Text(), nullable=True),
167
        sa.Column("foot", sa.Text(), nullable=True),
168
        sa.Column("generator:source", sa.Text(), nullable=True),
169
        sa.Column("harbour", sa.Text(), nullable=True),
170
        sa.Column("highway", sa.Text(), nullable=True),
171
        sa.Column("historic", sa.Text(), nullable=True),
172
        sa.Column("horse", sa.Text(), nullable=True),
173
        sa.Column("intermittent", sa.Text(), nullable=True),
174
        sa.Column("junction", sa.Text(), nullable=True),
175
        sa.Column("landuse", sa.Text(), nullable=True),
176
        sa.Column("layer", sa.Text(), nullable=True),
177
        sa.Column("leisure", sa.Text(), nullable=True),
178
        sa.Column("line", sa.Text(), nullable=True),
179
        sa.Column("lock", sa.Text(), nullable=True),
180
        sa.Column("man_made", sa.Text(), nullable=True),
181
        sa.Column("military", sa.Text(), nullable=True),
182
        sa.Column("motorcar", sa.Text(), nullable=True),
183
        sa.Column("name", sa.Text(), nullable=True),
184
        sa.Column("natural", sa.Text(), nullable=True),
185
        sa.Column("office", sa.Text(), nullable=True),
186
        sa.Column("oneway", sa.Text(), nullable=True),
187
        sa.Column("operator", sa.Text(), nullable=True),
188
        sa.Column("place", sa.Text(), nullable=True),
189
        sa.Column("population", sa.Text(), nullable=True),
190
        sa.Column("power", sa.Text(), nullable=True),
191
        sa.Column("power_source", sa.Text(), nullable=True),
192
        sa.Column("public_transport", sa.Text(), nullable=True),
193
        sa.Column("railway", sa.Text(), nullable=True),
194
        sa.Column("ref", sa.Text(), nullable=True),
195
        sa.Column("religion", sa.Text(), nullable=True),
196
        sa.Column("route", sa.Text(), nullable=True),
197
        sa.Column("service", sa.Text(), nullable=True),
198
        sa.Column("sidewalk", sa.Text(), nullable=True),
199
        sa.Column("shop", sa.Text(), nullable=True),
200
        sa.Column("sport", sa.Text(), nullable=True),
201
        sa.Column("surface", sa.Text(), nullable=True),
202
        sa.Column("toll", sa.Text(), nullable=True),
203
        sa.Column("tourism", sa.Text(), nullable=True),
204
        sa.Column("tower:type", sa.Text(), nullable=True),
205
        sa.Column("tunnel", sa.Text(), nullable=True),
206
        sa.Column("water", sa.Text(), nullable=True),
207
        sa.Column("waterway", sa.Text(), nullable=True),
208
        sa.Column("wetland", sa.Text(), nullable=True),
209
        sa.Column("width", sa.Text(), nullable=True),
210
        sa.Column("wood", sa.Text(), nullable=True),
211
        sa.Column("z_order", sa.Integer(), nullable=True),
212
        sa.Column(
213
            "tags", postgresql.HSTORE(text_type=sa.Text()), nullable=True
214
        ),
215
        sa.Column(
216
            "geom",
217
            geoalchemy2.types.Geometry(geometry_type="POINT", srid=3857),
218
            nullable=True,
219
        ),
220
        sa.Column(
221
            "gid",
222
            sa.Integer(),
223
            server_default=sa.text(
224
                "nextval('openstreetmap.osm_point_gid_seq'::regclass)"
225
            ),
226
            nullable=False,
227
        ),
228
        sa.PrimaryKeyConstraint("gid"),
229
        schema="openstreetmap",
230
    )
231
    op.create_index(
232
        op.f("ix_openstreetmap_osm_point_geom"),
233
        "osm_point",
234
        ["geom"],
235
        unique=False,
236
        schema="openstreetmap",
237
    )
238
    op.create_index(
239
        op.f("ix_openstreetmap_osm_point_tags"),
240
        "osm_point",
241
        ["tags"],
242
        unique=False,
243
        schema="openstreetmap",
244
    )
245
    op.create_table(
246
        "osm_polygon",
247
        sa.Column("osm_id", sa.BigInteger(), nullable=True),
248
        sa.Column("access", sa.Text(), nullable=True),
249
        sa.Column("addr:housename", sa.Text(), nullable=True),
250
        sa.Column("addr:housenumber", sa.Text(), nullable=True),
251
        sa.Column("addr:interpolation", sa.Text(), nullable=True),
252
        sa.Column("admin_level", sa.Text(), nullable=True),
253
        sa.Column("aerialway", sa.Text(), nullable=True),
254
        sa.Column("aeroway", sa.Text(), nullable=True),
255
        sa.Column("amenity", sa.Text(), nullable=True),
256
        sa.Column("area", sa.Text(), nullable=True),
257
        sa.Column("barrier", sa.Text(), nullable=True),
258
        sa.Column("bicycle", sa.Text(), nullable=True),
259
        sa.Column("brand", sa.Text(), nullable=True),
260
        sa.Column("bridge", sa.Text(), nullable=True),
261
        sa.Column("boundary", sa.Text(), nullable=True),
262
        sa.Column("building", sa.Text(), nullable=True),
263
        sa.Column("construction", sa.Text(), nullable=True),
264
        sa.Column("covered", sa.Text(), nullable=True),
265
        sa.Column("culvert", sa.Text(), nullable=True),
266
        sa.Column("cutting", sa.Text(), nullable=True),
267
        sa.Column("denomination", sa.Text(), nullable=True),
268
        sa.Column("disused", sa.Text(), nullable=True),
269
        sa.Column("embankment", sa.Text(), nullable=True),
270
        sa.Column("foot", sa.Text(), nullable=True),
271
        sa.Column("generator:source", sa.Text(), nullable=True),
272
        sa.Column("harbour", sa.Text(), nullable=True),
273
        sa.Column("highway", sa.Text(), nullable=True),
274
        sa.Column("historic", sa.Text(), nullable=True),
275
        sa.Column("horse", sa.Text(), nullable=True),
276
        sa.Column("intermittent", sa.Text(), nullable=True),
277
        sa.Column("junction", sa.Text(), nullable=True),
278
        sa.Column("landuse", sa.Text(), nullable=True),
279
        sa.Column("layer", sa.Text(), nullable=True),
280
        sa.Column("leisure", sa.Text(), nullable=True),
281
        sa.Column("line", sa.Text(), nullable=True),
282
        sa.Column("lock", sa.Text(), nullable=True),
283
        sa.Column("man_made", sa.Text(), nullable=True),
284
        sa.Column("military", sa.Text(), nullable=True),
285
        sa.Column("motorcar", sa.Text(), nullable=True),
286
        sa.Column("name", sa.Text(), nullable=True),
287
        sa.Column("natural", sa.Text(), nullable=True),
288
        sa.Column("office", sa.Text(), nullable=True),
289
        sa.Column("oneway", sa.Text(), nullable=True),
290
        sa.Column("operator", sa.Text(), nullable=True),
291
        sa.Column("place", sa.Text(), nullable=True),
292
        sa.Column("population", sa.Text(), nullable=True),
293
        sa.Column("power", sa.Text(), nullable=True),
294
        sa.Column("power_source", sa.Text(), nullable=True),
295
        sa.Column("public_transport", sa.Text(), nullable=True),
296
        sa.Column("railway", sa.Text(), nullable=True),
297
        sa.Column("ref", sa.Text(), nullable=True),
298
        sa.Column("religion", sa.Text(), nullable=True),
299
        sa.Column("route", sa.Text(), nullable=True),
300
        sa.Column("service", sa.Text(), nullable=True),
301
        sa.Column("sidewalk", sa.Text(), nullable=True),
302
        sa.Column("shop", sa.Text(), nullable=True),
303
        sa.Column("sport", sa.Text(), nullable=True),
304
        sa.Column("surface", sa.Text(), nullable=True),
305
        sa.Column("toll", sa.Text(), nullable=True),
306
        sa.Column("tourism", sa.Text(), nullable=True),
307
        sa.Column("tower:type", sa.Text(), nullable=True),
308
        sa.Column("tracktype", sa.Text(), nullable=True),
309
        sa.Column("tunnel", sa.Text(), nullable=True),
310
        sa.Column("water", sa.Text(), nullable=True),
311
        sa.Column("waterway", sa.Text(), nullable=True),
312
        sa.Column("wetland", sa.Text(), nullable=True),
313
        sa.Column("width", sa.Text(), nullable=True),
314
        sa.Column("wood", sa.Text(), nullable=True),
315
        sa.Column("z_order", sa.Integer(), nullable=True),
316
        sa.Column("way_area", sa.Float(), nullable=True),
317
        sa.Column("abandoned:aeroway", sa.Text(), nullable=True),
318
        sa.Column("abandoned:amenity", sa.Text(), nullable=True),
319
        sa.Column("abandoned:building", sa.Text(), nullable=True),
320
        sa.Column("abandoned:landuse", sa.Text(), nullable=True),
321
        sa.Column("abandoned:power", sa.Text(), nullable=True),
322
        sa.Column("area:highway", sa.Text(), nullable=True),
323
        sa.Column(
324
            "tags", postgresql.HSTORE(text_type=sa.Text()), nullable=True
325
        ),
326
        sa.Column(
327
            "geom", geoalchemy2.types.Geometry(srid=3857), nullable=True
328
        ),
329
        sa.Column(
330
            "gid",
331
            sa.Integer(),
332
            server_default=sa.text(
333
                "nextval('openstreetmap.osm_polygon_gid_seq'::regclass)"
334
            ),
335
            nullable=False,
336
        ),
337
        sa.PrimaryKeyConstraint("gid"),
338
        schema="openstreetmap",
339
    )
340
    op.create_index(
341
        op.f("ix_openstreetmap_osm_polygon_geom"),
342
        "osm_polygon",
343
        ["geom"],
344
        unique=False,
345
        schema="openstreetmap",
346
    )
347
    op.create_index(
348
        op.f("ix_openstreetmap_osm_polygon_tags"),
349
        "osm_polygon",
350
        ["tags"],
351
        unique=False,
352
        schema="openstreetmap",
353
    )
354
    op.create_table(
355
        "osm_rels",
356
        sa.Column("id", sa.BigInteger(), nullable=False),
357
        sa.Column("way_off", sa.SmallInteger(), nullable=True),
358
        sa.Column("rel_off", sa.SmallInteger(), nullable=True),
359
        sa.Column("parts", sa.ARRAY(sa.BigInteger()), nullable=True),
360
        sa.Column("members", sa.ARRAY(sa.Text()), nullable=True),
361
        sa.Column("tags", sa.ARRAY(sa.Text()), nullable=True),
362
        sa.PrimaryKeyConstraint("id"),
363
        schema="openstreetmap",
364
    )
365
    op.create_index(
366
        op.f("ix_openstreetmap_osm_rels_parts"),
367
        "osm_rels",
368
        ["parts"],
369
        unique=False,
370
        schema="openstreetmap",
371
    )
372
    op.create_table(
373
        "osm_roads",
374
        sa.Column("osm_id", sa.BigInteger(), nullable=True),
375
        sa.Column("access", sa.Text(), nullable=True),
376
        sa.Column("addr:housename", sa.Text(), nullable=True),
377
        sa.Column("addr:housenumber", sa.Text(), nullable=True),
378
        sa.Column("addr:interpolation", sa.Text(), nullable=True),
379
        sa.Column("admin_level", sa.Text(), nullable=True),
380
        sa.Column("aerialway", sa.Text(), nullable=True),
381
        sa.Column("aeroway", sa.Text(), nullable=True),
382
        sa.Column("amenity", sa.Text(), nullable=True),
383
        sa.Column("area", sa.Text(), nullable=True),
384
        sa.Column("barrier", sa.Text(), nullable=True),
385
        sa.Column("bicycle", sa.Text(), nullable=True),
386
        sa.Column("brand", sa.Text(), nullable=True),
387
        sa.Column("bridge", sa.Text(), nullable=True),
388
        sa.Column("boundary", sa.Text(), nullable=True),
389
        sa.Column("building", sa.Text(), nullable=True),
390
        sa.Column("construction", sa.Text(), nullable=True),
391
        sa.Column("covered", sa.Text(), nullable=True),
392
        sa.Column("culvert", sa.Text(), nullable=True),
393
        sa.Column("cutting", sa.Text(), nullable=True),
394
        sa.Column("denomination", sa.Text(), nullable=True),
395
        sa.Column("disused", sa.Text(), nullable=True),
396
        sa.Column("embankment", sa.Text(), nullable=True),
397
        sa.Column("foot", sa.Text(), nullable=True),
398
        sa.Column("generator:source", sa.Text(), nullable=True),
399
        sa.Column("harbour", sa.Text(), nullable=True),
400
        sa.Column("highway", sa.Text(), nullable=True),
401
        sa.Column("historic", sa.Text(), nullable=True),
402
        sa.Column("horse", sa.Text(), nullable=True),
403
        sa.Column("intermittent", sa.Text(), nullable=True),
404
        sa.Column("junction", sa.Text(), nullable=True),
405
        sa.Column("landuse", sa.Text(), nullable=True),
406
        sa.Column("layer", sa.Text(), nullable=True),
407
        sa.Column("leisure", sa.Text(), nullable=True),
408
        sa.Column("line", sa.Text(), nullable=True),
409
        sa.Column("lock", sa.Text(), nullable=True),
410
        sa.Column("man_made", sa.Text(), nullable=True),
411
        sa.Column("military", sa.Text(), nullable=True),
412
        sa.Column("motorcar", sa.Text(), nullable=True),
413
        sa.Column("name", sa.Text(), nullable=True),
414
        sa.Column("natural", sa.Text(), nullable=True),
415
        sa.Column("office", sa.Text(), nullable=True),
416
        sa.Column("oneway", sa.Text(), nullable=True),
417
        sa.Column("operator", sa.Text(), nullable=True),
418
        sa.Column("place", sa.Text(), nullable=True),
419
        sa.Column("population", sa.Text(), nullable=True),
420
        sa.Column("power", sa.Text(), nullable=True),
421
        sa.Column("power_source", sa.Text(), nullable=True),
422
        sa.Column("public_transport", sa.Text(), nullable=True),
423
        sa.Column("railway", sa.Text(), nullable=True),
424
        sa.Column("ref", sa.Text(), nullable=True),
425
        sa.Column("religion", sa.Text(), nullable=True),
426
        sa.Column("route", sa.Text(), nullable=True),
427
        sa.Column("service", sa.Text(), nullable=True),
428
        sa.Column("sidewalk", sa.Text(), nullable=True),
429
        sa.Column("shop", sa.Text(), nullable=True),
430
        sa.Column("sport", sa.Text(), nullable=True),
431
        sa.Column("surface", sa.Text(), nullable=True),
432
        sa.Column("toll", sa.Text(), nullable=True),
433
        sa.Column("tourism", sa.Text(), nullable=True),
434
        sa.Column("tower:type", sa.Text(), nullable=True),
435
        sa.Column("tracktype", sa.Text(), nullable=True),
436
        sa.Column("tunnel", sa.Text(), nullable=True),
437
        sa.Column("water", sa.Text(), nullable=True),
438
        sa.Column("waterway", sa.Text(), nullable=True),
439
        sa.Column("wetland", sa.Text(), nullable=True),
440
        sa.Column("width", sa.Text(), nullable=True),
441
        sa.Column("wood", sa.Text(), nullable=True),
442
        sa.Column("z_order", sa.Integer(), nullable=True),
443
        sa.Column("way_area", sa.Float(), nullable=True),
444
        sa.Column("abandoned:aeroway", sa.Text(), nullable=True),
445
        sa.Column("abandoned:amenity", sa.Text(), nullable=True),
446
        sa.Column("abandoned:building", sa.Text(), nullable=True),
447
        sa.Column("abandoned:landuse", sa.Text(), nullable=True),
448
        sa.Column("abandoned:power", sa.Text(), nullable=True),
449
        sa.Column("area:highway", sa.Text(), nullable=True),
450
        sa.Column(
451
            "tags", postgresql.HSTORE(text_type=sa.Text()), nullable=True
452
        ),
453
        sa.Column(
454
            "geom",
455
            geoalchemy2.types.Geometry(geometry_type="LINESTRING", srid=3857),
456
            nullable=True,
457
        ),
458
        sa.Column(
459
            "gid",
460
            sa.Integer(),
461
            server_default=sa.text(
462
                "nextval('openstreetmap.osm_roads_gid_seq'::regclass)"
463
            ),
464
            nullable=False,
465
        ),
466
        sa.PrimaryKeyConstraint("gid"),
467
        schema="openstreetmap",
468
    )
469
    op.create_index(
470
        op.f("ix_openstreetmap_osm_roads_geom"),
471
        "osm_roads",
472
        ["geom"],
473
        unique=False,
474
        schema="openstreetmap",
475
    )
476
    op.create_index(
477
        op.f("ix_openstreetmap_osm_roads_tags"),
478
        "osm_roads",
479
        ["tags"],
480
        unique=False,
481
        schema="openstreetmap",
482
    )
483
    op.create_table(
484
        "osm_ways",
485
        sa.Column("id", sa.BigInteger(), nullable=False),
486
        sa.Column("nodes", sa.ARRAY(sa.BigInteger()), nullable=False),
487
        sa.Column("tags", sa.ARRAY(sa.Text()), nullable=True),
488
        sa.PrimaryKeyConstraint("id"),
489
        schema="openstreetmap",
490
    )
491
    op.create_index(
492
        op.f("ix_openstreetmap_osm_ways_nodes"),
493
        "osm_ways",
494
        ["nodes"],
495
        unique=False,
496
        schema="openstreetmap",
497
    )
498
    op.drop_table("spatial_ref_sys")
499
    # ### end Alembic commands ###
500
501
502
def downgrade():
503
    # ### commands auto generated by Alembic - please adjust! ###
504
    op.create_table(
505
        "spatial_ref_sys",
506
        sa.Column("srid", sa.INTEGER(), autoincrement=False, nullable=False),
507
        sa.Column(
508
            "auth_name",
509
            sa.VARCHAR(length=256),
510
            autoincrement=False,
511
            nullable=True,
512
        ),
513
        sa.Column(
514
            "auth_srid", sa.INTEGER(), autoincrement=False, nullable=True
515
        ),
516
        sa.Column(
517
            "srtext",
518
            sa.VARCHAR(length=2048),
519
            autoincrement=False,
520
            nullable=True,
521
        ),
522
        sa.Column(
523
            "proj4text",
524
            sa.VARCHAR(length=2048),
525
            autoincrement=False,
526
            nullable=True,
527
        ),
528
        sa.CheckConstraint(
529
            "(srid > 0) AND (srid <= 998999)",
530
            name="spatial_ref_sys_srid_check",
531
        ),
532
        sa.PrimaryKeyConstraint("srid", name="spatial_ref_sys_pkey"),
533
    )
534
    op.drop_index(
535
        op.f("ix_openstreetmap_osm_ways_nodes"),
536
        table_name="osm_ways",
537
        schema="openstreetmap",
538
    )
539
    op.drop_table("osm_ways", schema="openstreetmap")
540
    op.drop_index(
541
        op.f("ix_openstreetmap_osm_roads_tags"),
542
        table_name="osm_roads",
543
        schema="openstreetmap",
544
    )
545
    op.drop_index(
546
        op.f("ix_openstreetmap_osm_roads_geom"),
547
        table_name="osm_roads",
548
        schema="openstreetmap",
549
    )
550
    op.drop_table("osm_roads", schema="openstreetmap")
551
    op.drop_index(
552
        op.f("ix_openstreetmap_osm_rels_parts"),
553
        table_name="osm_rels",
554
        schema="openstreetmap",
555
    )
556
    op.drop_table("osm_rels", schema="openstreetmap")
557
    op.drop_index(
558
        op.f("ix_openstreetmap_osm_polygon_tags"),
559
        table_name="osm_polygon",
560
        schema="openstreetmap",
561
    )
562
    op.drop_index(
563
        op.f("ix_openstreetmap_osm_polygon_geom"),
564
        table_name="osm_polygon",
565
        schema="openstreetmap",
566
    )
567
    op.drop_table("osm_polygon", schema="openstreetmap")
568
    op.drop_index(
569
        op.f("ix_openstreetmap_osm_point_tags"),
570
        table_name="osm_point",
571
        schema="openstreetmap",
572
    )
573
    op.drop_index(
574
        op.f("ix_openstreetmap_osm_point_geom"),
575
        table_name="osm_point",
576
        schema="openstreetmap",
577
    )
578
    op.drop_table("osm_point", schema="openstreetmap")
579
    op.drop_table("osm_nodes", schema="openstreetmap")
580
    op.drop_index(
581
        op.f("ix_openstreetmap_osm_line_tags"),
582
        table_name="osm_line",
583
        schema="openstreetmap",
584
    )
585
    op.drop_index(
586
        op.f("ix_openstreetmap_osm_line_geom"),
587
        table_name="osm_line",
588
        schema="openstreetmap",
589
    )
590
    op.drop_table("osm_line", schema="openstreetmap")
591
    # ### end Alembic commands ###
592