Ссылка на архив с исходными CSV
База подогнана под MySql и построена в соответствии со схемой.
Отредактировать sql/CREATE_TABLES.sql
python3 prepare_init_script.py
После этого в sql/INIT_DB.sql
будет записан итоговый код, создающий и заполняющий базу данных
Отредактировать нужный csv файл в папке airtrans_new
python3 prepare_init_script.py
После этого в sql/INIT_DB.sql
будет записан итоговый код, создающий и заполняющий базу данных
- Поднять сервер с MySql
- Отредактировать и запустить
test_database.py
. База создается при помощиsql/INIT_DB.sql
- Во всех таблицах, которые содержали тип данных
JSONB
(aircrafts, airports, tickets), этот тип заменен наVARCHAR
и вместоJSON
вставлен его элемент. Например, в таблице aircrafts вхождение"{""en"": ""Airbus A321-200"", ""ru"": ""Аэробус A321-200""}"
заменено на"Airbus A321-200"
- В таблице tickets контактные данные пассажира заменены на номер телефона пассажира
Это упрощение связано с тем, что в программе курса не затрагивается
JSON
. Не считаю нужным добавлять работу сJSON
в контест - Сокращены размеры таблиц. Теперь суммарно во всех таблицах менее 3К записей, против 1М+ записей в старой версии
- В таблицах, содержащих тип данных
TIMISTAMPTZ
(bookings, flights), поля этого типа заменены наTIMESTAMP
и в данных обрезан часовой пояс. Это необходимо для совместимости с MySql - В таблице flights тип данных колонки flight_id изменен с
SERIAL
наINTEGER
, так как необходимо использовать эту колонку в качестве внешнего ключа, а flight_id в таблице ticket_flights имеет типINTEGER
- В таблице airports изменен формат координат для совместимости с MySql
- В таблице flights вместо пропусков вставлены
NULL