sql >> データベース >  >> RDS >> PostgreSQL

Digital Ocean Postgresマネージドデータベースに接続するために、SSL証明書(ca-cert)をnode.js環境変数に追加するにはどうすればよいですか?

    さて、私はついにそれを理解することができました。問題は複数行であり、ローカルの開発環境でのdotenvに慣れていないことだと思います。

    このようなコードですべてを機能させることができました。 fs.readFileSync()でも機能しましたが、ソース管理にコミットしたくありませんでした。

    const { Pool } = require('pg')
    const fs = require('fs')
    
    const pgPool = new Pool({
    user: process.env.PGUSER,
    password: process.env.PGPASSWORD,
    host: process.env.PGHOST,
    database: process.env.PGDATABASE,
    port: process.env.PGPORT,
    ssl: {
        rejectUnauthorized: true,
        // ca: fs.readFileSync(
        //     `${process.cwd()}/cert/ca-certificate.crt`.toString()
        // ),
        ca: process.env.CA_CERT,
    },
    })
    .on('connect', () => {
        console.log('connected to the database!')
    })
    .on('error', (err) => {
        console.log('error connecting to database ', err)
    })
    

    config.envで、次のようにする必要がありました:

    CA_CERT="-----BEGIN CERTIFICATE-----\nVALUES HERE WITH NO SPACES AND A \n 
    AFTER EACH LINE\n-----END CERTIFICATE-----"
    

    それを機能させるには、1行の文字列として保持する必要がありました。しかし、私はついに接続することになりました

    {rejectUnauthorized:true} 
    

    デジタルオーシャンアプリプラットフォーム環境変数については、二重引用符を含むすべてをコピーしてそこに貼り付けました。うまく機能しているようです。ただし、7ドルの開発データベースでこの設定をtrueに設定することはできないと思います。ダウンロードするCA証明書を見つけるには、管理対象にアップグレードする必要がありました。




    1. ISO形式の日付をDATETIMEに変換します

    2. リストからのSqlBulkCopy<>

    3. 同じテーブル内の複数の列に対して内部結合を実行する

    4. サーバー上のMSDTC'サーバーは利用できません'