현재는 isUnique
와 함께 arraySize
를 지정하면, 고유한 값들이 생성된 후 배열로 묶입니다. 이때 생성되는 것은 고유한 값들이며, 고유한 배열이 아님을 주의하세요.
제너레이터(Generators)
경고
---
default
제너레이터가 호출될 때마다 동일한 값을 생성합니다.
매개변수 | 기본값 | 타입 | |
---|---|---|---|
defaultValue | — | any | |
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
posts: {
columns: {
content: funcs.default({
// 생성할 값
defaultValue: "post content",
// 1차원 배열의 요소 개수
// (지정하면 배열이 생성됨)
arraySize: 3
}),
},
},
}));
valuesFromArray
주어진 배열에서 값을 생성합니다.
매개변수 | 기본값 | 타입 | |
---|---|---|---|
values | — | any[] | { weight: number; values: any[] }[] | |
isUnique | 데이터베이스 컬럼 고유성 | boolean | |
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
posts: {
columns: {
title: funcs.valuesFromArray({
// 생성할 값의 배열 (가중치가 적용된 값의 배열도 가능)
values: ["Title1", "Title2", "Title3", "Title4", "Title5"],
// 생성된 값이 고유한지 여부를 제어하는 속성
isUnique: true,
// 1차원 배열의 요소 개수
// (지정된 경우 배열이 생성됨)
arraySize: 3
}),
},
},
}));
intPrimaryKey
1부터 시작하는 순차적인 정수를 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
— | — | — |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
posts: {
columns: {
id: funcs.intPrimaryKey(),
},
},
}));
number
주어진 범위 내에서 부동 소수점 숫자를 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
isUnique | 데이터베이스 컬럼의 고유성 | boolean | |
precision | 100 | number | |
maxValue | `precision * 1000` (isUnique가 false인 경우) `precision * count` (isUnique가 true인 경우) | number | |
minValue | -maxValue | number | |
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
products: {
columns: {
unitPrice: funcs.number({
// 범위의 하한값
minValue: 10,
// 범위의 상한값
maxValue: 120,
// 생성된 숫자의 정밀도:
// precision이 10이면 값은 소수점 첫째 자리까지 정확함 (예: 1.2, 34.6);
// precision이 100이면 값은 소수점 둘째 자리까지 정확함 (예: 1.23, 34.67).
precision: 100,
// 생성된 값이 고유해야 하는지 여부를 제어하는 속성
isUnique: false,
// 1차원 배열의 요소 수
// (지정된 경우 배열이 생성됨)
arraySize: 3
}),
},
},
}));
int
주어진 범위 내에서 정수를 생성합니다.
매개변수 | 기본값 | 타입 | |
---|---|---|---|
isUnique | 데이터베이스 컬럼의 고유성 | boolean | |
maxValue | `isUnique`가 `false`면 `1000` `isUnique`가 `true`면 `count * 10` | number | bigint | |
minValue | -maxValue | number | bigint | |
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
products: {
columns: {
unitsInStock: funcs.int({
// 범위의 하한값
minValue: 0,
// 범위의 상한값
maxValue: 100,
// 생성된 값이 고유해야 하는지 여부를 제어하는 속성
isUnique: false,
// 1차원 배열의 요소 개수
// (지정된 경우 배열이 생성됨)
arraySize: 3
}),
},
},
}));
boolean
불리언 값(true 또는 false)을 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
isAvailable: funcs.boolean({
// 각 1차원 배열의 요소 개수
// (지정하면 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
date
주어진 범위 내에서 날짜를 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
minDate | new Date('2020-05-08') | string | Date | |
maxDate | new Date('2028-05-08') | string | Date | |
arraySize | — | number |
IMPORTANT
minDate
또는 maxDate
중 하나만 제공된 경우, 지정되지 않은 파라미터는 지정된 날짜에서 8년을 더하거나 빼서 계산됩니다.
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
birthDate: funcs.date({
// 범위의 하한값
minDate: "1990-01-01",
// 범위의 상한값
maxDate: "2010-12-31",
// 1차원 배열의 요소 개수
// (지정된 경우 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
time
24시간 형식으로 시간을 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
birthTime: funcs.time({
// 각 1차원 배열의 요소 개수
// (지정된 경우 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
timestamp
타임스탬프를 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
orders: {
columns: {
shippedDate: funcs.timestamp({
// 각 1차원 배열의 요소 개수.
// (지정된 경우, 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
datetime
날짜와 시간 객체를 생성합니다.
매개변수 | 기본값 | 타입 | |
---|---|---|---|
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
orders: {
columns: {
shippedDate: funcs.datetime({
// 각 1차원 배열의 요소 개수
// (지정하면 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
year
YYYY
형식으로 연도를 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
birthYear: funcs.year({
// 1차원 배열의 요소 개수
// (지정하면 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
json
고정된 구조의 JSON 객체를 생성합니다.
{ email, name, isGraduated, hasJob, salary, startedWorking, visitedCountries }
// 또는
{ email, name, isGraduated, hasJob, visitedCountries }
JSON 구조는 무작위로 선택됩니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
metadata: funcs.json({
// 각 1차원 배열의 요소 개수
// (지정된 경우 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
interval
시간 간격을 생성합니다.
생성된 값의 예시: 1년 12일 5분
파라미터 | 기본값 | 타입 | |
---|---|---|---|
isUnique | 컬럼 고유성 | boolean | |
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
timeSpentOnWebsite: funcs.interval({
// `isUnique` - 생성된 값이 고유한지 여부를 제어하는 속성
isUnique: true,
// 각 1차원 배열의 요소 수.
// (지정된 경우 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
string
랜덤 문자열을 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
isUnique | — | boolean | |
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
hashedPassword: funcs.string({
// `isUnique` - 생성된 값이 고유한지 여부를 제어하는 속성
isUnique: false,
// 1차원 배열의 요소 개수
// (지정된 경우 배열이 생성됨)
arraySize: 3
}),
},
},
}));
uuid
v4 UUID 문자열을 생성합니다.
매개변수 | 기본값 | 타입 | |
---|---|---|---|
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
products: {
columns: {
id: funcs.uuid({
// 1차원 배열의 요소 개수
// (지정하면 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
firstName
사람의 이름을 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
isUnique | — | boolean | |
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
firstName: funcs.firstName({
// `isUnique` - 생성된 값이 고유한지 여부를 제어하는 속성
isUnique: true,
// 각 1차원 배열의 요소 수.
// (지정된 경우 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
lastName
사람의 성(last name)을 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
isUnique | — | boolean | |
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
lastName: funcs.lastName({
// `isUnique` - 생성된 값이 고유한지 여부를 제어하는 속성
isUnique: false,
// 각 1차원 배열의 요소 수.
// (지정된 경우 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
fullName
사람의 전체 이름을 생성합니다.
매개변수 | 기본값 | 타입 | |
---|---|---|---|
isUnique | — | boolean | |
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
fullName: funcs.fullName({
// `isUnique` - 생성된 값이 고유한지 여부를 제어하는 속성
isUnique: true,
// 각 1차원 배열의 요소 수.
// (지정된 경우 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
email
고유한 이메일 주소를 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
email: funcs.email({
// 각 1차원 배열의 요소 개수
// (지정하면 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
phoneNumber
고유한 전화번호를 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
template | — | string | |
prefixes | 접두사에 사용된 데이터셋 | string[] | |
generatedDigitsNumbers | 7 - prefixes가 정의된 경우 | number | number[] | |
arraySize | — | number |
import { seed } from "drizzle-seed";
// template 속성을 사용하여 전화번호 생성
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
phoneNumber: funcs.phoneNumber({
// `template` - 전화번호 템플릿. 모든 '#' 기호는 생성된 숫자로 대체됩니다.
template: "+(380) ###-####",
// 1차원 배열의 요소 수.
// (지정된 경우 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
import { seed } from "drizzle-seed";
// prefixes와 generatedDigitsNumbers 속성을 사용하여 전화번호 생성
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
phoneNumber: funcs.phoneNumber({
// `prefixes` - 전화번호 접두사로 사용할 문자열 배열. (`template` 속성과 호환되지 않음)
prefixes: ["+380 99", "+380 67"],
// `generatedDigitsNumbers` - 접두사 끝에 추가될 숫자의 개수. (`template` 속성과 호환되지 않음)
generatedDigitsNumbers: 7,
// 1차원 배열의 요소 수.
// (지정된 경우 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
import { seed } from "drizzle-seed";
// prefixes와 generatedDigitsNumbers 속성을 사용하지만, 각 접두사에 대해 다른 generatedDigitsNumbers를 적용하여 전화번호 생성
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
phoneNumber: funcs.phoneNumber({
// `prefixes` - 전화번호 접두사로 사용할 문자열 배열. (`template` 속성과 호환되지 않음)
prefixes: ["+380 99", "+380 67", "+1"],
// `generatedDigitsNumbers` - 접두사 끝에 추가될 숫자의 개수. (`template` 속성과 호환되지 않음)
generatedDigitsNumbers: [7, 7, 10],
// 1차원 배열의 요소 수.
// (지정된 경우 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
country
국가 이름을 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
isUnique | — | boolean | |
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
country: funcs.country({
// `isUnique` - 생성된 값이 고유한지 여부를 제어하는 속성
isUnique: false,
// 각 1차원 배열의 요소 수.
// (지정된 경우 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
city
도시 이름을 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
isUnique | — | boolean | |
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
city: funcs.city({
// `isUnique` - 생성된 값이 고유한지 여부를 제어하는 속성
isUnique: false,
// 각 1차원 배열의 요소 수.
// (지정된 경우 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
streetAddress
거리 주소를 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
isUnique | — | boolean |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
streetAddress: funcs.streetAddress({
// `isUnique` - 생성된 값이 고유한지 여부를 제어하는 속성
isUnique: false,
// 1차원 배열의 요소 개수
// (지정된 경우 배열이 생성됨)
arraySize: 3
}),
},
},
}));
jobTitle
직업명을 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
jobTitle: funcs.jobTitle({
// 각 1차원 배열의 요소 개수.
// (지정된 경우 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
postcode
우편번호를 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
isUnique | — | boolean | |
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
postcode: funcs.postcode({
// `isUnique` - 생성된 값이 고유한지 여부를 제어하는 속성
isUnique: true,
// 각 1차원 배열의 요소 수.
// (지정된 경우 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
state
미국 주(state)를 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
state: funcs.state({
// 각 1차원 배열의 요소 개수
// (지정하면 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
companyName
랜덤한 회사 이름을 생성합니다.
파라미터 | 기본값 | 타입 | |
---|---|---|---|
isUnique | — | boolean | |
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
users: {
columns: {
company: funcs.companyName({
// `isUnique` - 생성된 값이 고유한지 여부를 제어하는 속성
isUnique: true,
// 각 1차원 배열의 요소 수.
// (지정된 경우 배열이 생성됩니다.)
arraySize: 3
}),
},
},
}));
loremIpsum
lorem ipsum
텍스트 문장을 생성합니다.
매개변수 | 기본값 | 타입 | |
---|---|---|---|
sentencesCount | 1 | number | |
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
posts: {
columns: {
content: funcs.loremIpsum({
// `sentencesCount` - 생성할 문장의 개수 (하나의 생성된 값으로 문자열 반환)
sentencesCount: 2,
// 1차원 배열의 요소 개수
// (지정된 경우 배열이 생성됨)
arraySize: 3
}),
},
},
}));
point
지정된 범위 내에서 2D 포인트를 생성합니다. x와 y 좌표의 범위를 설정할 수 있습니다.
매개변수 | 기본값 | 타입 | |
---|---|---|---|
isUnique | 데이터베이스 컬럼의 고유성 여부 | boolean | |
maxXValue | `10 * 1000` (isUnique가 false일 때) `10 * count` (isUnique가 true일 때) | number | |
minXValue | -maxXValue | number | |
maxYValue | `10 * 1000` (isUnique가 false일 때) `10 * count` (isUnique가 true일 때) | number | |
minYValue | -maxYValue | number | |
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
triangles: {
columns: {
pointCoords: funcs.point({
// `isUnique` - 생성된 값이 고유한지 여부를 제어하는 속성
isUnique: true,
// `minXValue` - x 좌표의 하한값
minXValue: -5,
// `maxXValue` - x 좌표의 상한값
maxXValue: 20,
// `minYValue` - y 좌표의 하한값
minYValue: 0,
// `maxYValue` - y 좌표의 상한값
maxYValue: 30,
// 각 1차원 배열의 요소 수
// (지정된 경우 배열이 생성됨)
arraySize: 3
}),
},
},
}));
line
지정된 범위 내에서 2D 직선을 생성합니다. 이때 직선의 a, b, c 파라미터를 사용합니다.
직선 방정식: a*x + b*y + c = 0
파라미터 | 기본값 | 타입 | |
---|---|---|---|
isUnique | 데이터베이스 컬럼의 고유성 여부 | boolean | |
maxAValue | `10 * 1000` (isUnique가 false일 때) `10 * count` (isUnique가 true일 때) | number | |
minAValue | -maxAValue | number | |
maxBValue | `10 * 1000` (isUnique가 false일 때) `10 * count` (isUnique가 true일 때) | number | |
minBValue | -maxBValue | number | |
maxCValue | `10 * 1000` (isUnique가 false일 때) `10 * count` (isUnique가 true일 때) | number | |
minCValue | -maxCValue | number | |
arraySize | — | number |
import { seed } from "drizzle-seed";
await seed(db, schema, { count: 1000 }).refine((funcs) => ({
lines: {
columns: {
lineParams: funcs.point({
// `isUnique` - 생성된 값이 고유한지 여부를 제어하는 속성
isUnique: true,
// `minAValue` - a 파라미터의 하한값
minAValue: -5,
// `maxAValue` - a 파라미터의 상한값
maxAValue: 20,
// `minBValue` - b 파라미터의 하한값
minBValue: 0,
// `maxBValue` - b 파라미터의 상한값
maxBValue: 30,
// `minCValue` - c 파라미터의 하한값
minCValue: 0,
// `maxCValue` - c 파라미터의 상한값
maxCValue: 10,
// 1차원 배열의 요소 개수 (지정 시 배열이 생성됨)
arraySize: 3
}),
},
},
}));