Backend changes and sql convenience
- Added sql files to create and drop db and to feed example data. - Added bridge to import (and later export) data from a gtfs.GTFS object to the database. - Updated models and migrations to implement the whole GTFS reference.
This commit is contained in:
@@ -0,0 +1,205 @@
|
||||
# Generated by Django 5.0.6 on 2024-06-02 11:40
|
||||
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pt_map', '0004_alter_agency_agency_id_alter_calendar_service_id_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Level',
|
||||
fields=[
|
||||
('level_id', models.CharField(max_length=255, primary_key=True, serialize=False)),
|
||||
('level_index', models.FloatField()),
|
||||
('level_name', models.CharField(blank=True, max_length=255, null=True)),
|
||||
],
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='stop',
|
||||
name='tts_stop_name',
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='agency',
|
||||
name='agency_lang',
|
||||
field=models.CharField(blank=True, max_length=2, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='agency',
|
||||
name='agency_timezone',
|
||||
field=models.CharField(default=django.utils.timezone.now, max_length=255),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='feedinfo',
|
||||
name='default_lang',
|
||||
field=models.CharField(blank=True, max_length=255, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='feedinfo',
|
||||
name='feed_contact_email',
|
||||
field=models.EmailField(blank=True, max_length=254, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='feedinfo',
|
||||
name='feed_contact_url',
|
||||
field=models.URLField(blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='route',
|
||||
name='continuous_drop_off',
|
||||
field=models.IntegerField(blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='route',
|
||||
name='continuous_pickup',
|
||||
field=models.IntegerField(blank=True, null=True),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='route',
|
||||
name='route_sort_order',
|
||||
field=models.IntegerField(blank=True, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='agency',
|
||||
name='agency_email',
|
||||
field=models.EmailField(blank=True, max_length=254, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='agency',
|
||||
name='agency_fare_url',
|
||||
field=models.URLField(blank=True, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='agency',
|
||||
name='agency_id',
|
||||
field=models.CharField(max_length=255, primary_key=True, serialize=False),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='agency',
|
||||
name='agency_name',
|
||||
field=models.CharField(max_length=255),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='agency',
|
||||
name='agency_phone',
|
||||
field=models.CharField(blank=True, max_length=50, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='calendar',
|
||||
name='service_id',
|
||||
field=models.CharField(max_length=255, primary_key=True, serialize=False),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='calendardate',
|
||||
name='service_id',
|
||||
field=models.CharField(max_length=255),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='fareattribute',
|
||||
name='currency_type',
|
||||
field=models.CharField(max_length=3),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='fareattribute',
|
||||
name='fare_id',
|
||||
field=models.CharField(max_length=255, primary_key=True, serialize=False),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='route',
|
||||
name='agency',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='pt_map.agency'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='route',
|
||||
name='route_id',
|
||||
field=models.CharField(max_length=255, primary_key=True, serialize=False),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='route',
|
||||
name='route_long_name',
|
||||
field=models.CharField(blank=True, max_length=255, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='route',
|
||||
name='route_short_name',
|
||||
field=models.CharField(max_length=50),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='stop',
|
||||
name='platform_code',
|
||||
field=models.CharField(blank=True, max_length=50, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='stop',
|
||||
name='stop_code',
|
||||
field=models.CharField(blank=True, max_length=50, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='stop',
|
||||
name='stop_desc',
|
||||
field=models.TextField(blank=True, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='stop',
|
||||
name='stop_id',
|
||||
field=models.CharField(max_length=255, primary_key=True, serialize=False),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='stop',
|
||||
name='stop_lat',
|
||||
field=models.FloatField(),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='stop',
|
||||
name='stop_lon',
|
||||
field=models.FloatField(),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='stop',
|
||||
name='stop_name',
|
||||
field=models.CharField(max_length=255),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='stop',
|
||||
name='zone_id',
|
||||
field=models.CharField(blank=True, max_length=255, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='stoptime',
|
||||
name='arrival_time',
|
||||
field=models.TimeField(blank=True, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='stoptime',
|
||||
name='departure_time',
|
||||
field=models.TimeField(blank=True, null=True),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='trip',
|
||||
name='trip_id',
|
||||
field=models.CharField(max_length=255, primary_key=True, serialize=False),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Pathway',
|
||||
fields=[
|
||||
('pathway_id', models.CharField(max_length=255, primary_key=True, serialize=False)),
|
||||
('pathway_mode', models.IntegerField()),
|
||||
('is_bidirectional', models.IntegerField()),
|
||||
('length', models.FloatField(blank=True, null=True)),
|
||||
('traversal_time', models.IntegerField(blank=True, null=True)),
|
||||
('stair_count', models.IntegerField(blank=True, null=True)),
|
||||
('max_slope', models.FloatField(blank=True, null=True)),
|
||||
('min_width', models.FloatField(blank=True, null=True)),
|
||||
('signposted_as', models.CharField(blank=True, max_length=255, null=True)),
|
||||
('reversed_signposted_as', models.CharField(blank=True, max_length=255, null=True)),
|
||||
('from_stop', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pathways_from', to='pt_map.stop')),
|
||||
('to_stop', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='pathways_to', to='pt_map.stop')),
|
||||
],
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 5.0.6 on 2024-06-02 12:31
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pt_map', '0005_level_remove_stop_tts_stop_name_agency_agency_lang_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='route',
|
||||
name='route_type',
|
||||
field=models.IntegerField(default=0),
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,59 @@
|
||||
# Generated by Django 5.0.6 on 2024-06-02 16:56
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pt_map', '0006_alter_route_route_type'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Location',
|
||||
fields=[
|
||||
('location_id', models.CharField(max_length=255, primary_key=True, serialize=False)),
|
||||
('location_name', models.CharField(max_length=255)),
|
||||
('location_lat', models.FloatField()),
|
||||
('location_lon', models.FloatField()),
|
||||
('location_type', models.CharField(max_length=255)),
|
||||
('parent_location_id', models.CharField(blank=True, max_length=255, null=True)),
|
||||
('wheelchair_boarding', models.BooleanField(blank=True, null=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Translation',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('table_name', models.CharField(max_length=255)),
|
||||
('field_name', models.CharField(max_length=255)),
|
||||
('language', models.CharField(max_length=2)),
|
||||
('translation', models.TextField()),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Attribution',
|
||||
fields=[
|
||||
('attribution_id', models.CharField(max_length=255, primary_key=True, serialize=False)),
|
||||
('attribution_name', models.CharField(max_length=255)),
|
||||
('attribution_url', models.URLField()),
|
||||
('attribution_email', models.EmailField(blank=True, max_length=254, null=True)),
|
||||
('attribution_phone', models.CharField(blank=True, max_length=50, null=True)),
|
||||
('agency', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='pt_map.agency')),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='BookingRule',
|
||||
fields=[
|
||||
('booking_rule_id', models.CharField(max_length=255, primary_key=True, serialize=False)),
|
||||
('start_time', models.TimeField(blank=True, null=True)),
|
||||
('end_time', models.TimeField(blank=True, null=True)),
|
||||
('booking_type', models.CharField(max_length=255)),
|
||||
('rule_criteria', models.TextField(blank=True, null=True)),
|
||||
('booking_rule_instructions', models.TextField(blank=True, null=True)),
|
||||
('trip', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='pt_map.trip')),
|
||||
],
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,102 @@
|
||||
# Generated by Django 5.0.6 on 2024-06-02 17:04
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pt_map', '0007_location_translation_attribution_bookingrule'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Area',
|
||||
fields=[
|
||||
('area_id', models.CharField(max_length=255, primary_key=True, serialize=False)),
|
||||
('area_name', models.CharField(max_length=255)),
|
||||
('area_description', models.TextField(blank=True, null=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='FareLegRule',
|
||||
fields=[
|
||||
('fare_leg_rule_id', models.CharField(max_length=255, primary_key=True, serialize=False)),
|
||||
('fare_leg_rule_name', models.CharField(max_length=255)),
|
||||
('fare_leg_rule_description', models.TextField(blank=True, null=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='FareMedia',
|
||||
fields=[
|
||||
('fare_media_id', models.CharField(max_length=255, primary_key=True, serialize=False)),
|
||||
('fare_media_name', models.CharField(max_length=255)),
|
||||
('fare_media_description', models.TextField(blank=True, null=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='FareProduct',
|
||||
fields=[
|
||||
('fare_product_id', models.CharField(max_length=255, primary_key=True, serialize=False)),
|
||||
('fare_product_name', models.CharField(max_length=255)),
|
||||
('fare_product_description', models.TextField(blank=True, null=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='FareTransferRule',
|
||||
fields=[
|
||||
('fare_transfer_rule_id', models.CharField(max_length=255, primary_key=True, serialize=False)),
|
||||
('fare_transfer_rule_name', models.CharField(max_length=255)),
|
||||
('fare_transfer_rule_description', models.TextField(blank=True, null=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='LocationGroup',
|
||||
fields=[
|
||||
('location_group_id', models.CharField(max_length=255, primary_key=True, serialize=False)),
|
||||
('location_group_name', models.CharField(max_length=255)),
|
||||
('location_group_type', models.CharField(max_length=255)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Network',
|
||||
fields=[
|
||||
('network_id', models.CharField(max_length=255, primary_key=True, serialize=False)),
|
||||
('network_name', models.CharField(max_length=255)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='RouteNetwork',
|
||||
fields=[
|
||||
('route_network_id', models.CharField(max_length=255, primary_key=True, serialize=False)),
|
||||
('route_network_name', models.CharField(max_length=255)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='StopArea',
|
||||
fields=[
|
||||
('stop_area_id', models.CharField(max_length=255, primary_key=True, serialize=False)),
|
||||
('stop_area_name', models.CharField(max_length=255)),
|
||||
('stop_area_description', models.TextField(blank=True, null=True)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='TimeFrame',
|
||||
fields=[
|
||||
('time_frame_id', models.CharField(max_length=255, primary_key=True, serialize=False)),
|
||||
('start_date', models.DateField()),
|
||||
('end_date', models.DateField()),
|
||||
('start_time', models.TimeField()),
|
||||
('end_time', models.TimeField()),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='LocationGroupStop',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('location_group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='pt_map.locationgroup')),
|
||||
('stop', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='pt_map.stop')),
|
||||
],
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,17 @@
|
||||
# Generated by Django 5.0.6 on 2024-06-02 17:10
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pt_map', '0008_area_farelegrule_faremedia_fareproduct_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameModel(
|
||||
old_name='FareMedia',
|
||||
new_name='FareMedium',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,17 @@
|
||||
# Generated by Django 5.0.6 on 2024-06-02 17:19
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pt_map', '0009_rename_faremedia_faremedium'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameModel(
|
||||
old_name='Location',
|
||||
new_name='LocationGeojson',
|
||||
),
|
||||
]
|
||||
@@ -0,0 +1,17 @@
|
||||
# Generated by Django 5.0.6 on 2024-06-02 17:21
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('pt_map', '0010_rename_location_locationgeojson'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameModel(
|
||||
old_name='LocationGeojson',
|
||||
new_name='LocationsGeojson',
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user