패키지, 저장소 및 앱 카테고리 검색

패키지 상세v3.6.0

postgres

PostgreSQL 데이터베이스 드라이버입니다. 이진 프로토콜, 연결 풀링 및 문장 재사용을 지원합니다.

AndroidiOSmacOSWindowsLinux
30일 다운로드
60.4만
좋아요
416
Pub 점수
160

패키지 설치

flutter pub add postgres

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

postgres 패키지는 Dart와 Flutter용 PostgreSQL 데이터베이스 드라이버로, 이진 프로토콜, 연결 풀링 및 문장 재사용을 지원하여 효율적인 데이터베이스 상호작용을 가능하게 합니다. 개발자들이 다양한 플랫폼에서 강력한 데이터베이스 연결을 필요로 하는 확장 가능한 애플리케이션을 구축할 수 있도록 도와줍니다. 성능과 신뢰성을 고려해 설계된 드라이버로, 소규모 프로젝트부터 대규모 시스템까지 모두 적합합니다. Flutter 앱에 원활하게 통합되며, Android, iOS, macOS, Windows, Linux를 포함한 모든 주요 운영 체제를 지원합니다.

사용 사례

  • Flutter 앱을 PostgreSQL 데이터베이스에 연결하는 방법
  • 실시간 데이터를 사용하여 백엔드 서비스 구축
  • 안전하고 효율적인 데이터베이스 쿼리 구현
  • 고용량 데이터베이스 작업 관리
  • 다중 플랫폼 데이터베이스 액세스 지원

주요 기능

  • 이진 프로토콜 지원
  • 연결 풀링
  • 문장 재사용
  • 크로스 플랫폼 호환성
  • 강력한 오류 처리

적합한 대상

  • 데이터베이스 액세스가 필요한 플러터 모바일 애플리케이션
  • PostgreSQL를 사용하는 백엔드 서비스
  • 고성능 데이터베이스 작업이 필요한 응용 프로그램
  • 다양한 플랫폼을 대상으로 하는 개발자
  • 신뢰할 수 있는 데이터베이스 연결을 필요로 하는 프로젝트

고려 사항

  • PostgreSQL 서버 설정이 필요합니다
  • 생산 환경을 위한 추가 구성이 필요할 수 있습니다
  • PostgreSQL 데이터베이스 유형으로 제한
  • 성능은 네트워크 및 서버 구성에 따라 달라집니다
  • 안전한 액세스를 위한 인증 설정이 필요합니다

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

PostgreSQL client

CI

A library for connecting to and querying PostgreSQL databases (see Postgres Protocol). This driver uses the more efficient and secure extended query format of the PostgreSQL protocol.

Usage

Create a Connection:

  final conn = await Connection.open(Endpoint(
    host: 'localhost',
    database: 'postgres',
    username: 'user',
    password: 'pass',
  ));

Execute queries with execute:

  final result = await conn.execute("SELECT 'foo'");
  print(result[0][0]); // first row and first field

Named parameters, returning rows as map of column names:

  final result = await conn.execute(
    Sql.named('SELECT * FROM a_table WHERE id=@id'),
    parameters: {'id': 'xyz'},
  );
  print(result.first.toColumnMap());

Execute queries in a transaction:

  await conn.runTx((s) async {
    final rs = await s.execute('SELECT count(*) FROM foo');
    await s.execute(
      r'UPDATE a_table SET totals=$1 WHERE id=$2',
      parameters: [rs[0][0], 'xyz'],
    );
  });

See the API documentation: https://pub.dev/documentation/postgres/latest/

Connection string URLs

The package supports connection strings for both single connections and connection pools:

await Connection.openFromUrl('postgresql://localhost/mydb');
await Connection.openFromUrl(
  'postgresql://user:pass@db.example.com:5432/production?sslmode=verify-full'
);
await Connection.openFromUrl(
  'postgresql://localhost/mydb?connect_timeout=10&query_timeout=60'
);
Pool.withUrl(
  'postgresql://localhost/mydb?max_connection_count=10&max_connection_age=3600'
);
URL Format

postgresql://[userspec@][hostspec][:port][/dbname][?paramspec]

  • Scheme: postgresql:// or postgres://
  • User: username or username:password (can also be set via user/username and password query parameters)
  • Host: hostname or IP address (defaults to localhost). Supports multiple hosts via comma-separated list (host1:5433,host2:5434) or multiple host query parameters (?host=host1:5433&host=host2:5434)
  • Port: port number (defaults to 5432, can be overridden via port query parameter)
  • Database: database name (defaults to postgres, can be overridden via database query parameter)
  • Parameters: query parameters (see below)
Standard Parameters

These parameters are supported by Connection.openFromUrl():

Parameter Type Description Example Values
application_name String Sets the application name application_name=myapp
client_encoding String Character encoding UTF8, LATIN1
connect_timeout Integer Connection timeout in seconds connect_timeout=30
database String Database name (overrides URL path) database=mydb
host String Alternative host specification (supports Unix sockets) host=/var/run/postgresql, host=host1:5433
password String Password (overrides URL userspec) password=secret
port Integer Port number (overrides URL port) port=5433
user / username String Username (overrides URL userspec) user=myuser
sslmode String SSL mode disable, require, verify-ca, verify-full
sslcert String Path to client certificate sslcert=/path/to/cert.pem
sslkey String Path to client private key sslkey=/path/to/key.pem
sslrootcert String Path to root certificate sslrootcert=/path/to/ca.pem
replication String Replication mode database (logical), true/physical, false/no_select (none)
query_timeout Integer Query timeout in seconds query_timeout=300
Pool-Specific Parameters

These additional parameters are supported by Pool.withUrl():

Parameter Type Description Example Values
max_connection_count Integer Maximum number of concurrent connections max_connection_count=20
max_connection_age Integer Maximum connection lifetime in seconds max_connection_age=3600
max_session_use Integer Maximum session duration in seconds max_session_use=600
max_query_count Integer Maximum queries per connection max_query_count=1000

Connection pooling

The library supports connection pooling (and masking the connection pool as regular session executor).

Custom type codecs

The library supports registering custom type codecs (and generic object encoders) through theConnectionSettings.typeRegistry.

Streaming replication protocol

The library supports connecting to PostgreSQL using the Streaming Replication Protocol. See Connection documentation for more info. An example can also be found at the following repository: postgresql-dart-replication-example

Other notes

This library originally started as StableKernel's postgres library, but got a full API overhaul and partial rewrite of the internals.

Please file feature requests and bugs at the issue tracker.

카테고리

의존성

의존성 목록 9 개

소스 저장소

이 패키지를 사용하는 프로젝트

순위