본문 바로가기
WIKI 기술 지식 베이스

Database 서비스

원문 보기 위키 갱신

이 서비스는 플러그인이 app-config YAML 파일에 구성된 데이터베이스에 연결된 knex 클라이언트를 얻어 영속성 요구를 충족할 수 있게 해요.

출처: 문서

본문

이 서비스는 플러그인이 app-config YAML 파일에 구성된 데이터베이스에 연결된 knex 클라이언트를 얻어 영속성 요구를 충족할 수 있게 해요.

backend.database에 구성이 제공되지 않으면 플러그인용으로 간단한 인메모리 SQLite 3 데이터베이스를 자동으로 얻게 되며, 서비스가 다시 시작되면 그 내용이 손실돼요.

이 서비스도 플러그인별로 범위가 지정되므로 테이블 이름이 플러그인 간에 충돌하지 않아요.

서비스 사용

다음 예시는 example 백엔드 플러그인에서 데이터베이스 서비스에 접근하고 데이터베이스와 상호 작용할 클라이언트를 얻는 방법을 보여줘요. 또한 플러그인용으로 특정 디렉터리에서 마이그레이션을 실행해요.

import {  coreServices,  createBackendPlugin,} from '@backstage/backend-plugin-api';import { resolvePackagePath } from '@backstage/backend-plugin-api';createBackendPlugin({  pluginId: 'example',  register(env) {    env.registerInit({      deps: {        database: coreServices.database,      },      async init({ database }) {        const client = await database.getClient();        const migrationsDir = resolvePackagePath(          '@internal/my-plugin',          'migrations',        );        if (!database.migrations?.skip) {          await client.migrate.latest({            directory: migrationsDir,          });        }      },    });  },});

더 알아보기 (Learn more)