Что ж, теперь в моей компании мы переходим с MySQL 5 на PostgreSQL 8.4, потому что интерфейсом проекта является PHP, а серверной частью является LISP, у которого есть проблемы с подготовленными MySQL операторами.
Это была только одна из причин, и я не могу это контролировать, поэтому в настоящее время у нас есть длинная база данных, содержащая около дюжины таблиц, которые необходимо перенести. Дело в том, что в MySQL мы использовали SQL-соглашение с учетом регистра, например:
Все таблицы множественного числа, все столбцы имеют префикс имени таблицы (не множественного числа), а слова разделяются заглавными буквами, например:
Таблица Сообщения, столбцы PostID, UserID, PostTitle, PostContent, PostUpdated, PostCreated и т. Д.
Хотя я использую PHP PDO во внешнем интерфейсе, есть много запросов, которые выглядят так: SELECT * FROM Posts
, которые отлично работали в MySQL, но в PostgreSQL они должны быть выше SELECT * FROM "Posts"
, или таблицы после миграции должны становиться низкими случай в PostgreSQL (тогда он будет заботиться о двойных кавычках).
Оба решения - отстой, поэтому я был бы рад третьему (например, найти способ, позволяющий продолжать запрашивать таблицы, как раньше, и он все еще работает в PostgreSQL) или что-то еще. Но если это невозможно, я был бы признателен за совет, как это сделать отсюда - например, продолжать создавать таблицы с учетом регистра и запрашивать БД с двойными кавычками вокруг имен таблиц и столбцов и изменять текущие запросы или изменять соглашение об именах на строчными буквами и начните использовать подчеркивание в качестве разделителя между словами, такими как post_title, post_content, и измените все текущие запросы. Очень важно быть лучшим в долгосрочной перспективе, так как это будет последним таким изменением (проект растет).