Перед преобразованием установите MySQL в ANSI-строгость, запустив сервер с: --transaction-изоляцией = SERIALIZABLE --sql-mode = ANSI
Убедитесь, что вы не используете таблицы MyIsam.
MySQL допускает много преобразований, которых он не должен; pg потребует приведение.
Ваши сохраненные процедуры, функции и триггеры должны быть переписаны. pg предоставляет вам выбор языков для них, но вы должны установить языки; это не так удобно для пользователя, как MySQL.
pg будет разрешать только в списке выбора столбцы, которые находятся в группе или являются агрегатами; MySQL обманет, выбрав первое значение в группе, если вы сделаете это.
MySQL добавляет несколько расширений: оператор неравенства может быть !=
, как в C, он допускает использование & & в качестве синонима для 'and', '||' для 'или' и т. д. В частности, pg использует '||' означать цепочку строк.
По сути, pg довольно строго ANSI, а MySQL нет. Я настоятельно рекомендую, чтобы ваш MySQL как можно более строго соответствовал ANSI, прежде чем переходить на pg, а затем проверять наличие любых предупреждений при запуске приложений.