Дорогостоящий процесс повторного заполнения производственных данных с Laravel в большом наборе данных MySQL

Я ищу более разумный способ исправить ошибки в большой базе данных. Решения приветствуются, насколько они разумны (не стесняйтесь задавать вопросы инструментам для работы, то есть реляционной базе данных). Я не могу позволить себе обрезать данные и заново заполнить все значения. Особенно, когда целостность данных вступает в игру. Это должно быть достаточно устойчивым к ошибкам разработчика без необходимости повторного заполнения для учета ошибки. Миграции /MySQL/ реляционные БД не кажутся достаточно гибкими для моего набора данных. Вот где мои знания отсутствуют.

Сценарий:

  • Проект Laravel, использующий семена (JSON) в классах миграции, см.: [Laravel: Миграция и засев для производственных данных] [1]

    [1]: Laravel: миграция и посев для производственных данных

    • База данных MySQL 10 тыс. Объектов JSON, представляющих футболистов, содержащих 10 значений, например, имя, вес, рост, команда, DOB. Объекты повторяются, затем вставляются в БД с идентификатором AI.

Проблема: Столбец MySQL 'height' изначально, по ошибке разработчика, имел тип int, а не float, поэтому все высоты были округлены до 2 м.

Посредством миграции я изменил тип на float, и теперь все значения высоты необходимо изменить с помощью повторного заполнения, так как они все еще 2 м (а не, скажем, 1,76). Нам нужно подумать о времени и затратах, когда нужно заново заполнить тысячи объектов JSON в MySQL, чтобы изменить значения в столбце при сохранении целостности данных, поскольку объектам из JSON назначаются их уникальные идентификаторы на вставке MySQL.

Для пояснения: существуют безидентифицированные объекты JSON, из которых я получаю данные. Есть несколько файлов JSON для соответствующих футбольных лиг, поэтому я собираю их по модульному принципу, то есть когда добавляю новых игроков. Если мне нужно войти и внести изменения, нет никакой целостности между объектами в JSON и объектами в базе данных. Я думал о работе со значениями, которые мне нужны, чтобы создать составной ключ(?), Но мне все еще кажется, что данные настолько хрупкие и подвержены ошибкам разработчика, и мне нужен способ разумного управления этим, чего я не делаю Почувствуйте, что Laravel предлагает миграцию / семена, тем более что вы ограничены запуском миграций только на основании значений их меток времени (вы не можете указать откат определенного файла миграции, который вы запускали ранее). Возможно, "исходный контроль" для баз данных - хорошая идея, если таковая существует. Обратите внимание, что сообщение помечено как теория баз данных и целостность данных, я знаю, что могу просто повторно заполнить, но это может занять несколько часов моего рабочего дня.

Приветствия.

0 ответов

Другие вопросы по тегам