The PostgreSQL adapter works with the native C (github.com/ged/ruby-pg) driver.
Options:
-
:host - Defaults to a Unix-domain socket in /tmp. On machines without Unix-domain sockets, the default is to connect to localhost.
-
:port - Defaults to 5432.
-
:username - Defaults to be the same as the operating system name of the user running the application.
-
:password - Password to be used if the server demands password authentication.
-
:database - Defaults to be the same as the username.
-
:schema_search_path - An optional schema search path for the connection given as a string of comma-separated schema names. This is backward-compatible with the :schema_order option.
-
:encoding - An optional client encoding that is used in a SET client_encoding TO <encoding> call on the connection.
-
:min_messages - An optional client min messages that is used in a SET client_min_messages TO <min_messages> call on the connection.
-
:variables - An optional hash of additional parameters that will be used in SET SESSION key = val calls on the connection.
-
:insert_returning - An optional boolean to control the use of RETURNING for INSERT statements defaults to true.
Any further options are used as connection parameters to libpq. See www.postgresql.org/docs/current/static/libpq-connect.html for the list of parameters.
In addition, default connection parameters of libpq can be set per environment variables. See www.postgresql.org/docs/current/static/libpq-envars.html .
Constants
FEATURE_NOT_SUPPORTED = "0A000"
QUERY_CANCELED = "57014"
LOCK_NOT_AVAILABLE = "55P03"
DUPLICATE_DATABASE = "42P04"
DEADLOCK_DETECTED = "40P01"
SERIALIZATION_FAILURE = "40001"
UNIQUE_VIOLATION = "23505"
FOREIGN_KEY_VIOLATION = "23503"
NOT_NULL_VIOLATION = "23502"
NUMERIC_VALUE_OUT_OF_RANGE = "22003"
VALUE_LIMIT_VIOLATION = "22001"
OID = PostgreSQL::OID # :nodoc:
NATIVE_DATABASE_TYPES = { primary_key: "bigserial primary key", string: { name: "character varying" }, text: { name: "text" }, integer: { name: "integer", limit: 4 }, bigint: { name: "bigint" }, float: { name: "float" }, decimal: { name: "decimal" }, datetime: {}, # set dynamically based on datetime_type timestamp: { name: "timestamp" }, timestamptz: { name: "timestamptz" }, time: { name: "time" }, date: { name: "date" }, daterange: { name: "daterange" }, numrange: { name: "numrange" }, tsrange: { name: "tsrange" }, tstzrange: { name: "tstzrange" }, int4range: { name: "int4range" }, int8range: { name: "int8range" }, binary: { name: "bytea" }, boolean: { name: "boolean" }, xml: { name: "xml" }, tsvector: { name: "tsvector" }, hstore: { name: "hstore" }, inet: { name: "inet" }, cidr: { name: "cidr" }, macaddr: { name: "macaddr" }, uuid: { name: "uuid" }, json: { name: "json" }, jsonb: { name: "jsonb" }, ltree: { name: "ltree" }, citext: { name: "citext" }, point: { name: "point" }, line: { name: "line" }, lseg: { name: "lseg" }, box: { name: "box" }, path: { name: "path" }, polygon: { name: "polygon" }, circle: { name: "circle" }, bit: { name: "bit" }, bit_varying: { name: "bit varying" }, money: { name: "money" }, interval: { name: "interval" }, oid: { name: "oid" }, enum: {} # special type https://www.postgresql.org/docs/current/datatype-enum.html }
ADAPTER_NAME = "PostgreSQL"