# PostgreSQL
# psql
# DB への接続
psql
は下記のコマンドで起動する。デフォルトでは、オペレーティングシステムのユーザと同名のユーザと DB が使われる。例えば、windows のユーザ名が test の場合、psql
コマンドは下記と同じ意味になる。
psql -U test -d test
# コマンド
- \d リレーション一覧
- \dt テーブル一覧
- \di インデックス一覧
# 参考
# pg-promise
# セットアップ
const pgPromise = require('pg-promise')();
const db = pgPromise({
host,
user,
password,
database,
});
# query
// query()は汎用クエリであり、なるべく避ける。次行以降の result-specific Method を使うこと。
db.query();
db.none();
db.one();
db.oneOrNone();
db.many();
db.manyOrNone();
# bulk insert
const users = [];
users.push({
user_id: 1,
description: 'some description',
geom: `ST_GeomFromText('POINT(${lng} ${lat})')`,
});
// SEE: http://vitaly-t.github.io/pg-promise/helpers.ColumnSet.html
const column = [
'user_id',
'description',
{
name: 'geom',
// サニタイズせずに、raw textとしてクエリ文に変換する。
// 関数などを使うときに使用する。
mod: '^',
},
};
// 第三引数はテーブル名
const query = pgPromise.helpers.insert(users, column, 'users');
await db.none(query);
# 呼び出し
初期設定は下記のように行う。
const pgPromise = require('pg-promise')(initOptions);
初期化以降のタイミングで、他のファイルで pg-promise のヘルパーを使う際などは、下記のように呼び出して使う。
const pgPromise = require('pg-promise')();
pgPromise.as.format('something'); // ヘルパー
pgPromise.end(); // poolをすべて殺す