テーブルと列の一覧をとるクエリタイトル通り。)2017年02月13日01:15カテゴリその他もろもろPostgreSQLに他のサーバ(端末)からつなげるローカル以外からPostgreにつなげようとすると「SSL無効用のエントリがありません」っていうエラーが出る。Postgreの設定で許可するIPを指定しないとダメらしい。微妙じゃね?設定するのは↓PostgreSQL\9.6\data\pg_hba.conf↓の感じで繋げたい端末のIPをいれておく。md5まー、アプリサーバを入れておく感じになると思うんだけど、pgAdminとか保守的な事をする端末すらもやっておかないとダメってことよね?絶対他にやり方があるはず。)2016年12月19日00:54カテゴリその他もろもろMSSQLServerからPostgreSQLへのデータ移行をC#で書くタイトル通り。最近、SQLServerからPostgreSQLへの切り替えをやってる。CreateTableしてー、CSVにデータはいてー、Postgreにインポートしてー。みたいなのはググればいっぱい出てきますが、正直、クッソだるい何がだるいかとゆーと、ってか実際には上の感じの作業はしてないので、もしかしたらすんなり行くのかもしれませんが、十中八九、以下の点ではまるのが目に見えている。テキスト系で改行とかエスケープしないとダメなのあったらどーせ無理じゃない?100を超えるテーブルのCreate文なんか流したくない100を超えるテーブルのインポートなんかしたくないバイナリ型ってCSV吐いただけで行けるのかしら?などなど。ハマルのが目に見えている。ゆーわけで、PostgreSQLをC#でごにょごにょするのに慣れる意味も含めてプログラムでやった。SQLServerへの接続とかはデフォでほぼ行けるからどーでもいいとして、PostgreSQLを扱う場合は「Npgsql」を使う。インストールはNugetから。あと、一件づつインサートとかはありえないので、.netでいうBulkCopyもしたい。プログラムの流れは↓の感じ。1SQLServerで移行したいDBのテーブルの定義を丸ごと取得21の中でPostgre用のCreateTableを作っておく。大したことはやってないけど、確実に手でやるより早い。X.object_id,Y.column_id主キーの判定がちょっとメンドー。あと、テーブル名で西暦8ケタ付きのバックアップぽいテーブルは除くようにしてみたりしてる。あと、数値系の項目ってどれがbyte型か調べるのめんどーになったので、全部強制的にIntに変換。ランボー過ぎかな?定義が取れれば、Create文はテキトーに作れるでしょう。したら、Postgre側にテーブル作成を投げる。