Skip to main content

define-connection

모델을 정의하기에 앞서 데이터베이스로의 연결을 생성해야 합니다.

import * as cormo from 'cormo';

const connection = new cormo.MySQLConnection({ database: 'test' });

각 데이터베이스 시스템별 설정은 MySQLConnectionSettings, MongoDBConnectionSettings, SQLite3ConnectionSettings, PostgreSQLConnectionSettings에서 확인할 수 있습니다.

각 데이터베이스 시스템에 맞는 드라이버(MySQL은 mysql2 또는 mysql, MongoDB는 mongodb, SQLite3는 sqlite3, PostgreSQL는 pg)를 설치해야 합니다. 그렇지 않으면 Install mysql module to use this adapter와 같은 에러와 함께 프로세스가 종료됩니다.

런타임에 환경별로 다른 데이터베이스 시스템을 사용하는 경우 Connection 클래스를 직접 사용합니다.

let Config;
if (process.env.NODE_ENV === 'test') {
Config = {
database_type: 'sqlite3',
database_settings: {
database: __dirname + '/test.sqlite3',
},
};
} else {
Config = {
database_type: 'mysql',
database_settings: {
host: 'db.example.com',
database: 'cormo',
},
};
}
const connection = new cormo.Connection(Config.database_type, Config.database_settings);

모델을 정의하면, 모델은 자동으로 마지막 Connection 인스턴스에 연결됩니다. 자동 연결을 원하지 않는 경우 (예. 다수의 커넥션을 사용) is_default를 false로 설정합니다.

const mysql = new cormo.MySQLConnection({ database: 'test', is_default: false });
const mongodb = new cormo.MongoDBConnection({ database: 'test', is_default: false });

@cormo.Model({ connection: mongodb })
class User extends cormo.BaseModel {
@cormo.Column(String)
public name?: string | null;

@cormo.Column(Number)
public age?: number | null;
}

@cormo.Model({ connection: mysql })
class Post extends cormo.BaseModel {
@cormo.Column(String)
public title?: string | null;

@cormo.Column(String)
public body?: string | null;
}

Connection 인스턴스는 어떤 메소드 호출이 없어도 데이터베이스 서버에 자동으로 연결합니다.