라벨이 DB인 게시물 표시

DBMS DBeaver란

이미지
 dbeaver download : https://dbeaver.io/download/ 출처: https://github.com/dbeaver/dbeaver DBeaver는 데이터베이스 관리 및 개발 도구 중 하나로, 다양한 데이터베이스 시스템과 연동하여 데이터베이스 관리, 쿼리 작성, 스키마 디자인, 데이터 편집, 백업 및 복원 등 다양한 데이터베이스 관련 작업을 수행할 수 있는 오픈 소스 소프트웨어입니다. DBeaver는 크로스 플랫폼 도구로서 Windows, macOS, Linux 등 다양한 운영 체제에서 실행할 수 있습니다. 1. 다양한 데이터베이스 지원: DBeaver는 다양한 데이터베이스 시스템을 지원하며, MySQL, PostgreSQL, Oracle, SQL Server, SQLite, MongoDB 등 다양한 데이터베이스 시스템과 연동하여 사용할 수 있습니다. 2. 시각적 쿼리 작성: 사용자가 SQL 쿼리를 시각적으로 작성하고 실행할 수 있는 편리한 인터페이스를 제공합니다. 3. 데이터 편집 및 관리: 데이터베이스 내의 테이블 데이터를 편집하고 관리할 수 있으며, 데이터의 추가, 수정, 삭제 작업을 지원합니다. 4. 스키마 디자인: 데이터베이스 스키마를 시각적으로 디자인하고 관리할 수 있습니다. 5. 데이터 뷰어: 데이터베이스에서 쿼리한 결과를 그래픽 및 텍스트 모드로 표시할 수 있는 데이터 뷰어를 제공합니다. 6. 플러그인 확장: 다양한 플러그인을 지원하여 사용자의 요구에 따라 기능을 확장할 수 있습니다. 7. 데이터베이스 백업 및 복원: 데이터베이스의 백업과 복원 작업을 지원하여 데이터 손실을 방지할 수 있습니다. 성능 모니터링: 데이터베이스 성능을 모니터링하고 성능 튜닝을 위한 도구를 제공합니다. 설치법 : Ubuntu DBeaber 설치

NestJS SQLite 연결(TypeORM)

이미지
  NestJS 설치 : nest js - install & Create Project from Linux or Ubuntu NestJS CLI로 TypeORM 및 sqlite설치 npm 모듈은 nestjs에서 TypeORM 으로 sqlite을 사용할수 있는 모듈이다. 자새한 사항은 링크 참조 $ npm i --save sqlite3 typeorm @nestjs/typeorm copy 참고로 사용하는 버전은 다음과 같습니다. @nestjs/typeorm : ^9.0.1 sqlite3 : ^5.0.11 typeorm : ^0.3.9 // src/app.module.ts import { Module } from '@nestjs/common' ; import { TypeOrmModule } from '@nestjs/typeorm' ; import { AppController } from './app.controller' ; import { AppService } from './app.service' ; @ Module ({ imports : [ TypeOrmModule . forRoot ({ type : 'sqlite' , // 사용하는 DBMS종료 database : ` ${ __dirname . split ( '/dist' )[ 0 ] } /test.db` , // DB의 위치. 실제 root경로/test.db entities : [ __dirname + "/**/*.entity{.ts,.js}" ], // 엔티티 위치 synchronize : true // 프로그램이 DB구조 변경 허용(true) }) ], controllers : [ AppController ], providers : [ AppService ], }) export class ...

SQLite Ubuntu 설치

이미지
  Package list update하기 sqlite를 설치하기전 apt업데이트를 진행해야 합니다. $ sudo apt update copy SQLite설치하기 sqlite를 설치합니다. $ sudo apt install sqlite3 copy SQLite버전 확인하기 Ubuntu에 설치한 sqlite의 버전을 확인합니다. $ sqlite3 --version copy 이후 SQLite에 대한 자세한 정보나 사용법은 아래 링크를 참고해 주시기 바랍니다. SQLite Tutorial : https://www.sqlitetutorial.net/ 개발자 디스코드 서버에 초대합니다. 사진) 아래링크 클릭시 커뮤니티로 초대 Comunity Discord Link

NestJS Redis 연결

이미지
 안녕하세요. 이번에는 Redis을 이용하여 NestJS와 연결을 하도록 하겠습니다.  일단 해당 Local 또는 Remote PC에 Redis가 설치되 있어야 하고 특히 Remote PC는 해당 Redis가 외부에서 통신이 가능하도록 셋팅해야 합니다. NestJS 공식 문서 링크 Redis 공식 문서 링크 1. npm모듈 설치(dependencies) - cache-manager와 cache-manager-redis-store를 설치한다 $ npm install cache-manager cache-manager-redis-store copy 2. npm모듈 설치(devDependencies) - cache-manager와 cache-manager-redis-store를 설치한다 $ npm install -D @types/cache-manager copy // src/cache-dbmodule/cache-dbmodule.module.ts import { CacheModule , Global , Module } from '@nestjs/common' ; import * as redisStore from 'cache-manager-redis-store' ; import { CacheDbmoduleController } from './cache-dbmodule.controller' ; import { CacheDbmoduleService } from './cache-dbmodule.service' ; require ( 'dotenv' ). config (); // env파일을 사용하기 위한 코드 // CacheModule를 설정합니다. export const cacheModule = CacheModule . registerAsync ({ useFactory : async () => ({ store : r...

NestJS TypeORM의 Many to Many 구현 4- Join Table에 CASCADE적용하기(부모Record삭제시 자식 Record도 동시 삭제)

이미지
이전글 : NestJS TypeORM의 Many to Many 구현 3- Join Table 구성 안녕하세요. 이번에는 'CASCADE'를 JoinTable에 적용해 보도록 하겠습니다.  사진1) userId 삭제할때 에러 위 SQL문에서 user 테이블의 id 2인 레코드를 지울려면 해당 JoinTable의 연관된 Record를 먼저 삭제를 해야 합니다. 이것을 삭제하고 진행을 할수 있지만 무척 번거로워 지겠죠.   좋은 방법중 하나는 user의 Record를 삭제하면 JoinTable의 연관된 Record도 자동으로 지워지는 것입니다. 그것이 CASCADE입니다. // user_book_join.entity.ts : src/book/entities import { User } from 'src/users/entities/user.entity' ; import { Column , CreateDateColumn , Entity , ManyToOne , PrimaryColumn , } from 'typeorm' ; import { Book } from './book.entity' ; @ Entity () export class User_Book_Join { // 여기서 PrimaryColumn은 userId와 bookId의 조합이다. @ PrimaryColumn ({ nullable : false , }) userId : number ; @ PrimaryColumn ({ nullable : false , }) bookId : number ; @ Column ({ nullable : false , }) book_review : string ; @ CreateDateColumn ({ readonly : true }) created_at : Date ; @ ManyToOne (() => Us...

NestJS TypeORM의 Many to Many 구현 3- Join Table 구성

이미지
이전글 : NestJS TypeORM의 Many to Many 구현 2- 관계형 구성 및 User, Book의 CRUD구현  이제 Join Table을 이용하여 관계를 만들도록 하겠습니다. // user_book_join.entity.ts : src/book/entities import { User } from 'src/users/entities/user.entity' ; import { Column , CreateDateColumn , Entity , ManyToOne , PrimaryColumn , } from 'typeorm' ; import { Book } from './book.entity' ; @ Entity () export class User_Book_Join { // 여기서 PrimaryColumn은 userId와 bookId의 조합이다. @ PrimaryColumn ({ nullable : false , }) userId : number ; @ PrimaryColumn ({ nullable : false , }) bookId : number ; @ Column ({ nullable : false , }) book_review : string ; @ CreateDateColumn ({ readonly : true }) created_at : Date ; @ ManyToOne (() => User , ( user ) => user . id ) user : User ; @ ManyToOne (() => Book , ( book ) => book . id ) book : Book ; }   위 Entity는 user와 book을 연결해 주는 JoinTable 입니다. 다만 그대로 연결하는 것이 아닌 리뷰도 작성하여 저장할수 있습니다. import ...

NestJS TypeORM의 Many to Many 구현 2- 관계형 구성 및 User, Book의 CRUD구현

이미지
 이제 본격적으로 각 테이블간 관계형을 작성하도록 하겠습니다.  이전글 : NestJS TypeORM의 Many to Many 구현 1- 셋팅 및 각 테이블 생성 사진1) TypeORM Entity 사진1에서 보면 가장 오른쪽부터 User, User_Book_Join 그리고 마지막은 Book entity입니다. Many To Many를 구현할때 TypeORM으로 자동 생성(@ManyToMany)할수 있지만 현재 DB스키마에는 JoinTable에 리뷰도 작성해야 하기때문에 직접 entity를 만든 것입니다. 사진2) 사진1을 run후 MySQL Table 사진1의 코드를 저장한 다음 'npm run start'를 하면 사진2와 같이 각 테이블들이 관계를 갖게 된다. 이제 User의 CRUD를 구성하도록 하겠습니다. 먼저 Dto를 만들어야 합니다. // create-user.dto.ts : src/users/dto export class CreateUserDto { full_name : string ; } user를 생성할때 'full_name'하나만 있으면 되기 때문에 위 코드처럼 작성해 줍니다. // update-user.dto.ts : src/users/dto import { PartialType } from '@nestjs/mapped-types' ; import { CreateUserDto } from './create-user.dto' ; export class UpdateUserDto extends PartialType ( CreateUserDto ) {} user를 업데이트 할때 기존의 CreateUserDto를 참고해서 UpdateUserDto에 적용한다. // users.service.ts : src/users import { Injectable } from '@nestjs/common' ; import { InjectRepository ...

NestJS TypeORM의 Many to Many 구현 1- 셋팅 및 각 테이블 생성

이미지
 안녕하세요. 이번에는 nestjs의 프레임 워크와 TypeORM을 이용하여 다대다(Many to Many)관계도를 구축할려고 합니다. 다대다 관계를 구축할때 Record 생성, 수정, 삭제는 다음 글에서 작성하고 지금은 DB Table을 생성하도록 하겠습니다. DBMS은 MySQL을 사용할 것입니다. 참고로 Many to Many(다대다) 구조에 대해서 잘 모르시는 분들은 아래 링크를 참고해 주시기 바랍니다. 링크 :  SQL 관계도 Many to Many(다대다 관계) 그리고 위 글에서는 NestJS와 TypeORM을 이용한 Many To Many 테이블을 구축하는 것입니다. NestJS가 설치되어 있어야 합니다. 설치가 안되어 있으면 아래 링크를 참고해 주시기 바랍니다. NestJS설치법 링크1 :  nest js - install & Create Project from Linux or Ubuntu NestJS에 MySQL셋팅법 링크2 :  nest js -5 Connect to DataBase(mysql) with TypeORM 링크2에서 블로그에서 작성할 코드와 다른점은 '.env'파일을 사용한다는 것입니다. 환경설정변수를 저장한 문서인데 쉽게 말하자면 민감한 정보를 저장한 파일 입니다. 자세한 이야기는 블로그 글을 작성하고 링크를 달아두도록 하겠습니다. (아니면 검색하셔도 됩니다.) 먼저 npm 설치가 필요합니다. $ npm i dotenv copy 사진1) .env파일 생성 // TypeORM의 option 설정 import { TypeOrmModuleOptions } from '@nestjs/typeorm' ; require ( 'dotenv' ). config () // .env파일 적용을 위해 npm 추가 // TypeORM과 DataBase를 연결하기 위한 셋팅 export const typeOrmConfig : TypeOrmModuleOptions = { ...