«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Миграция SQLite в MySQL.

Миграция SQLite в MySQL.

Опубликовано 8 ноября 2024 г.
Просматривать:501

Я представляюсь, меня зовут Альфредо Риверос, я изучаю программирование уже несколько лет. В настоящее время я учусь на факультете разработки программного обеспечения в Высшей школе коммерции - Рио-Терсеро, и ниже я опишу задачу, которую мне предстоит решить. столкнулся.

Как следует из названия, моей целью было перенести базу данных SQLite в MySQL, что возникло в результате задания по теме базы данных, которую я выполняю.

Выбранная мной база данных принадлежит игре SQL Murder Mystery. Эта игра, созданная для обучения навыкам SQL в увлекательной игровой форме, доступна по этой ссылке, где вы можете скачать базу данных, предоставленную ее разработчиками.

Я выбрал эту базу данных из-за ее педагогической ориентации, поскольку, хотя это сама по себе игра, она представляет собой ценный ресурс как для преподавания, так и для изучения концепций, связанных с базами данных.

Моим первым шагом в решении этой задачи было выяснить, могу ли я использовать DB Browser for SQLite для экспорта базы данных в формат, совместимый с MySQL Workbench. Хотя мне удалось сгенерировать SQL-скрипт из браузера БД, его импорт в Workbench вызвал множество проблем, особенно синтаксиса и целостности данных, в дополнение к сложности управления таким большим файлом.

Migrar de SQLite a MySQL.

Migrar de SQLite a MySQL.

Я изучил этот файл и попытался решить проблемы с синтаксисом и, наконец, пришел к выводу, что мне следует поискать другой подход.

Моим следующим шагом было использование функции sqlite3 для экспорта сценария sql через терминал (linux).

Migrar de SQLite a MySQL.

В этот раз скрипт значительно улучшился по синтаксису, но тем не менее большая проблема в том, что всегда появлялась та или иная новая проблема.

Поскольку оба подхода исчерпаны, я нашел время, чтобы подумать и оценить другие альтернативы. Я посчитал, что Python может стать эффективным инструментом для этой миграции, учитывая поддержку SQLite и MySQL, и начал разрабатывать алгоритм для автоматизации процесса.

Поэтому я начал искать информацию по этой теме, сначала проверяя, возможен ли такой подход, и собирая информацию, чтобы иметь возможность разработать алгоритм, который позволил бы мне достичь моей цели.

Теперь я кратко опишу новый подход, с помощью которого я добился успеха в достижении своей цели.
Первое, что я сделал, это шаг за шагом документировал свое исследование, что привело меня к изучению так называемого объектно-реляционного отображения (ORM).

объектно-реляционное отображение (ORM) — это метод, используемый в программировании для преобразования данных между несовместимыми системами типов в объектно-ориентированных языках программирования. В контексте баз данных ORM позволяет взаимодействовать с реляционными базами данных через объекты вместо прямого использования SQL-запросов. Это обеспечивает более интуитивный и эффективный способ работы с данными.

В моем случае я использовал SQLAlchemy для разработки алгоритма на Python и, проанализировав результаты, обнаружил следующие ключевые моменты.

  • Классы, подобные таблицам:
    • Каждый класс, который вы определяете (например, Crime_Scene_report, Drivers_License и т. д.), соответствует таблице в базе данных. Атрибуты класса представляют столбцы таблицы.
  • Экземпляры в виде строк:
    • Каждый экземпляр класса представляет строку в соответствующей таблице. Когда вы запрашиваете данные из SQLite, вы получаете экземпляры этих классов, что делает работу с данными более интуитивной и объектно-ориентированной.
  • Операции вставки и обновления:
    • Использование таких методов, как merge(), позволяет вам напрямую работать с этими экземплярами. Вы можете вставлять новые записи или обновлять существующие без необходимости писать SQL-запросы вручную, что упрощает код и делает его более читабельным.
  • Управление взаимоотношениями:
    • SQLAlchemy автоматически обрабатывает связи между таблицами (например, через внешние ключи) через атрибуты в классах, что упрощает навигацию между связанными записями.

Migrar de SQLite a MySQL.

Важная вещь, которую следует отметить в ходе процесса, после различных проб и ошибок, заключается в том, что понимание подхода и оценка написанного кода имеют решающее значение, поскольку это помогает вам определить места, где могут возникнуть проблемы. После некоторого размышления и паузы я пришел к выводу, что проблема, вероятно, связана со структурой базы данных. Однако у меня в голове оставался один вопрос: как эта база данных может работать в SQLite, несмотря на проблемы с целостностью и различные появившиеся ошибки? Ответ прост: в отличие от MySQL, SQLite позволяет иметь таблицы без первичных ключей, что способствует большим различиям в управлении данными между обеими системами. Эта гибкость SQLite может маскировать проблемы, которые в более ограниченной среде, такой как MySQL, привели бы к немедленным ошибкам.

Другое отличие состоит в том, что MySQL имеет более строгий подход к структуре и типам данных. Например, если вы определите поле как INTEGER, вы не сможете вставить значение, не являющееся числом.

Различия продолжаются, результатом их понимания стало осознание того, что для работы подхода необходимо внести изменения в базу данных, для этого я решил модифицировать таблицы и убедиться, что они соответствуют стандартам MySQL, во-первых, у каждого из них есть свой первичный ключ, и я гарантирую, что оба имеют одинаковые типы данных.

Добавляю... Если вы хотите сделать то же самое, имейте в виду, что SQLite не позволяет напрямую изменять таблицы, что является еще одним большим отличием от MySQL.

Наконец, внеся изменения в скрипт и в алгоритм, написанный на Python, я приступил к его выполнению. Результат: база данных игры была перенесена в MySQL.

Эта задача не только улучшила мои технические навыки, но и научила меня важности понимания различий между системами управления базами данных и того, как они могут повлиять на целостность баз данных.

Надеюсь, мой опыт переноса базы данных с SQLite на MySQL был полезным и вдохновляющим. Каждая задача дает возможность учиться и расти в мире программирования.
Спасибо за прочтение и до новых встреч!

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/silvio_riveros_49b5505866/migrar-de-sqlite-a-mysql-217i?1. Если есть какие-либо нарушения, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3