MS SQL - миграция MySQL в устаревшее веб-приложение

Я хочу перенести базу данных устаревшего веб-приложения с SQL Server на MySQL. На какие ограничения MySQL я должен обращать внимание? И что все элементы должны быть частью всеобъемлющего контрольного списка, прежде чем приступить к фактическому изменению кода?

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
0
358
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

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

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

Также необходимо будет рассмотреть пользовательские функции. Не забывайте об этом, если вы это делаете.

Не забывайте о запланированных заданиях, их также нужно будет проверить и воссоздать в myslq.

Вы импортируете какие-либо данные по регулярному графику? Придется переписать весь импорт.

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

Еще одна вещь, которую вы хотите сделать, - это делать все через скрипты с контролем версий. Не переходите к производству, пока не сможете запустить все скрипты по порядку на dev без сбоев.

Убедитесь, что у вас есть все необходимые драйверы для переноса данных - technikhil.wordpress.com/2007/05/13/…

Nikhil 03.11.2009 21:12

Я забыл одну вещь: убедитесь, что база данных разработчиков, из которой выполняется миграция (база данных сервера sql), обновляется из производственной среды непосредственно перед каждым запуском теста. Ненавижу, когда что-то выходит из строя из-за того, что вы тестировали устаревшие записи.

Если вы не можете синхронизировать схемы разработки и производства, у вас большие проблемы :)

MarkR 16.10.2008 00:42

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

HLGEM 16.10.2008 17:46

Ваш клиентский код почти наверняка будет самой сложной частью для изменения. Если ваше приложение не имеет очень качественного набора тестов, вам придется проводить много тестов. Вы не можете полагаться на то, что что-то работает одинаково, даже на то, чего вы ожидаете.

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

Забудьте о переносе данных, это последнее, о чем вы должны думать; схема базы данных, вероятно, может быть преобразована без особых трудностей; другие объекты базы данных (SP, представления и т. д.) могут вызвать проблемы, но клиентский код находится в центре внимания проблем.

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

В настоящее время я ищу возможность переноса основной базы данных нашего приложения с MySQL 4.1 на 5, это гораздо меньше разницы, но все равно будет очень и очень большой задачей.

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