Миграция с SQL Server на Postgres с помощью Dapper - PullRequest
0 голосов
/ 21 марта 2019

Наша текущая база данных находится в SQL Server, и в будущем мы планируем перейти на Postgres.

Для новых приложений, имеет ли смысл записывать все вызовы базы данных через что-то вроде Dapper (микро ORM)?Будет ли это так же просто, как изменение строки подключения и объекта подключения в конце, после того как мы перейдем с SQL Server на Postgres (при условии сохранения той же схемы)?

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

Примечание : Мои текущие приложения будут выполнять много операций чтения и, по существу, никаких записей.Вот почему я смотрю на Dapper как на решение ORM.

1 Ответ

0 голосов
/ 22 марта 2019

Было бы так же просто, как изменить строку подключения и объект подключения в конце, после того как мы перейдем с SQL Server на Postgres (при условии, что поддерживается та же схема)?

Нет;Все не так просто.Dapper не генерирует запросы для вас.Вы пишете каждый запрос самостоятельно.Кроме того, существуют синтаксические различия в SQL Server и Postgres.Таким образом, запросы, написанные для одной СУБД, могут не работать так, как для других.

У вас есть несколько способов справиться с этим:

  1. Конечно, перейдите и проверьте каждый запрос, еслиэто работает с новыми RDBMS.Если нет, то исправьте его.
  2. Если все ваши запросы отделены от бизнес-логики (возможно, уровня DAL), тогда этот процесс обзора немного прост.Вы можете создать два разных варианта DAL по одному для каждой СУБД.
  3. Обновить до чего-то более высокого - возможно, Dapper Contrib?Он поддерживает генерацию запросов для ограниченной СУБД;не уверен, включен ли Postgres;никогда не использовал это.Существуют аналогичные дополнения Dapper, которые поддерживают генерацию запросов.
  4. Обновление до полной ORM, например Entity Framework или NHibernate.
...