PostgreSQL 시작

PostgreSQL을 선택해야 하는 이유


이 글에서, 나는 어떻게 위탁 관리 PostgreSQL을 만드는지 연구할 것이다. (지금부터 나는 SQL 데이터베이스만 호출할 것이다.) 그리고 node\upostgres를 사용하여 그것에 연결할 것이다.저는 MongoDB 데이터베이스를 많이 사용한 경험이 있고 Prisma를 사용하여 상당히 큰 프로젝트를 구축했습니다. 이 프로젝트는 백그라운드에서 SQL을 사용하지만 저는 SQL 조회를 작성하고 SQL 데이터베이스와 직접 상호작용을 한 적이 없습니다.
Mongo Atlas(또는 mLab)와 mongose가 있어서 어떻게 시작하고 실행하는지 쉽게 찾을 수 있지만 저는 자신의 SQL 데이터베이스로 시작하고 실행하기가 매우 어렵습니다.
다음은 고려 사항입니다.
  • 나는 내가 영원히 생산에서 사용할 수 없는 이상한 무료 사이트를 사용하고 싶지 않다.
  • 나는 그것이 싸기를 바란다 (내가 성공했을지도 모른다?!)
  • 은 진정한 해결 방안이 필요합니다. 저는 진정한 노드 응용 프로그램에서 사용하는 것을 볼 수 있습니다.(GoDaddy 서버 같은 것을 사용하고 이미 저를 위해 설정된 일련의 데이터베이스와 반대로)
  • 더 이상 말할 필요 없이 다음은 제가 소개할 내용입니다.
  • 은 Digital Ocean을 사용하여 DB를 시작하고 실행합니다.
  • 은 노드postgres가 있는 노드에서 프로젝트의 설정을 설정합니다.
  • 에서 표를 만들고 테스트합니다.
  • PostgreSQL 데이터베이스 만들기


    만약 네가 아직 Digital Ocean을 사용하지 않았다면 정말 좋았을 것이다.요컨대 가상 서버를 설정할 수 있는 사이트다.처음에 저는 MySQL을 설치한 상태에서 서버를 만들려고 했습니다. (매달 약 5달러 운행) 이해하기 어려웠습니다. 결국 제 목표는 SQL 데이터베이스에 접근해서 전단 응용 프로그램을 작성할 수 있도록 하는 것입니다. 그래서 저는 모든 시간을 거기에 쓰고 싶지 않습니다.그래서
    Digital Ocean에서 관리하는 데이터베이스를 선택했습니다.이 한 달의 비용은 15달러이지만 한 과정보다 싸다. 이것은 합법적이다. 나는 많은 시간을 절약했다. (내 말은 사람들이 데이터베이스를 관리하는 전업을 하고 있다는 것이다.) Digital Ocean은 너에게 코드를 추천해서 일정 시간(보통 30-60일)에 학점을 받게 하고 나는 학점이 있기 때문에 자유롭게 시도할 수 있다!sign up using my referral code을 시험해 보고 싶으면 30일 안에 50달러의 포인트를 받을 수 있기 때문에 무료로 시작할 수 있습니다.

    DigitalOcean 데이터베이스 구축

  • Sign up for DigitalOcean
  • 새 프로젝트 만들기
  • 위탁 관리 데이터베이스를 만듭니다.저는 PostgreSQL을 사용했는데 이 글을 작성할 때 유일한 선택입니다.너는 여기에 몇 가지 옵션을 설정해야 하지만, 이것은 매우 간단하다.

  • 은 데이터베이스를 만들 것입니다. 프로젝트에서 볼 수 있습니다.설정이 완료되도록 이동합니다.

  • 에 IP 주소를 추가하여 데이터베이스 액세스를 일반에 공개하지 않습니다.

  • 에서 SSL 인증서를 다운로드하면 연결할 수 있습니다.

  • 잘했어!데이터베이스가 시작되고 실행되었습니다.

    데이터베이스에 연결


    나는 결코 완전한 응용 프로그램을 만드는 방법에 관한 강좌를 쓰고 싶지 않기 때문에, 우리는 여기서 몇 가지 절차만 토론할 것이다.우선, 우리는 노드postgres를 설정한 다음, 새 테이블을 만들고 컨트롤러에 기록할 기본 조회를 작성할 것입니다.

    프로젝트 설정


    너를 연결하려면 단지 두 가지 일이 필요하다. 하나.연결된 js 파일 및.Digital Ocean에서 다운로드한 crt 인증서.이것은 나의 구조다.
    postgresql-tutorial
      /certificate.crt (I renamed this)
      /connect.js (you can name whatever you want)
    

    연결 설정


    우선, 나는 데이터베이스에 연결해야 한다.나는 docs on node-postgres에서 모든 정보를 얻었지만, 그 중에서 모든 부분을 설명하기 위해 평론을 남겼다.DigitalOcean에서 다음 그림과 같이 모든 구성 옵션에 액세스할 수 있습니다.

    // node-postgres also support a pool connection, but I was more familiar with the Client type so I started with that
    const { Client } = require('pg');
    // fs is used to read the certificate
    const fs = require('fs');
    
    const config = {
      // everything here you can get from the "Connection Details" when viewing your database in DigitalOcean
      user: 'doadmin',
      host: 'db-postgresql-nyc1-21328-do-user-4669604-0.db.ondigitalocean.com',
      database: 'defaultdb',
      password: 'tqjgkd6uxyqger6n',
      port: 25060,
      /* You have to include the ssl options because DigitalOcean requires them.
      This is essentially just added on from the boilerplate config in the node-postgres docs */
      ssl : {
        rejectUnauthorized : false,
        ca: fs.readFileSync("./certificate.crt").toString(), //make sure name matches your certificate name you downloaded
      }
    }
    
    // creates a new Client instance with the config options above (you can also just put them directly in as argument)
    const client = new Client(config);
    
    // Connects! (Or tells me I don't know what I'm doing)
    client.connect((err) => {
      if (err) {
        console.log("Connection error!", err)
      } else {
        console.log("Connection to DB successful")
      }
    });
    

    테스트 데이터베이스


    위의 코드와 설정 옵션이 있습니다. 위의 옵션은 더 이상 작동하지 않기 때문입니다. 컨트롤러에서 연결 중인 것을 볼 수 있습니다.여기서 데이터베이스를 사용하는 것은 매우 쉽다.기본적으로 노드postgres에는 queries이 있습니다. 이 중에서 SQL 조회를 전달할 수 있습니다.어쨌든, 나는 그다지 많이 들어가지 않았다. 이것은 본래 이 방면에서 더욱 잘하기 위해서였다.질의가 성공하면 응답 대상이 반환됩니다.
    동일한 연결에서js 파일, 다음 코드를 추가합니다.
    const makeTable = `
      CREATE TABLE products (
      product_no integer,
      name text,
      price numeric
    );`;
    
    const testQuery = `SELECT * FROM products`
    
    client.query(makeTable) //pass in the testQuery to see if making the table was successful
      .then(res => console.log(res))
      .catch(e => console.error(e))
      .then(() => client.end())
    
    
    이 줄을 추가하면 node connect.js을 실행하고 되돌아오는 응답 대상을 볼 수 있습니다.
    본질적으로 고객이다.조회는makeTable SQL 조회를 받습니다. 이것은 응답이나 오류를 기록하는 약속입니다.마지막으로 연결이 닫힙니다.
    두 번째 조회 testQuery을 보실 수 있습니다. client.query(makeTable 교체)에 전달할 수 있습니다. 이 대상은 처음에 만든 표의 상세한 정보를 보여 줍니다.
    그렇습니다.다른 사람들이 이 점을 발견하고 실제 응용 프로그램에서 SQL을 사용하기 시작하기를 바랍니다!
    나는 곧 이 글을 썼다. 왜냐하면 내 손이 에어컨이 있는 성바크리에서 얼어 죽었기 때문이다. 그러므로 만약 잘 모르는 곳이 있으면 나에게 알려줘. 이렇게 하면 내가 수정하고 해명할 수 있어!

    좋은 웹페이지 즐겨찾기