Да, можно. Причём сейчас у Drift есть отдельная реализация drift_postgres, которая позволяет использовать Drift непосредственно с PostgreSQL. Большую часть существующих запросов на Drift переписывать не придётся - Drift генерирует SQL под нужный диалект.
Например, зависимости:
dependencies:
drift: ^2.34.3
drift_postgres: ^1.3.1
А подключение выглядит примерно так:
final database = AppDatabase(
PgDatabase(
endpoint: PgEndpoint(
host: 'localhost',
database: 'mydb',
username: 'postgres',
password: 'password',
),
),
);
Также нужно указать PostgreSQL как SQL dialect в build.yaml:
targets:
$default:
builders:
drift_dev:
options:
sql:
dialects:
- postgres
После этого твои обычные конструкции Drift вроде select(), insert(), update(), delete(), join и т.д. можно продолжать использовать.
Но есть нюанс: поддержка PostgreSQL в Drift пока новее и менее полно покрыта тестами, чем SQLite. Некоторые SQLite-специфичные возможности, особенно связанные с DateTime и миграциями, потребуют адаптации. Для PostgreSQL рекомендуется использовать его нативные типы вроде PgTypes.uuid, PgTypes.date, PgTypes.timestampWithTimezone и т.п.
То есть в твоей ситуации переходить с Drift на другой ORM только из-за PostgreSQL смысла нет. Если запросы уже написаны на Drift, логичнее подключить drift_postgres и проверить их совместимость с PostgreSQL.