TypeScriptDrizzledrizzle-seed

drizzle-seed を使って DB のデータをリセットする

はじめに

Drizzle ORM を使っている Project で DB のデータをリセットしたかった。 drizzle-seed の reset を使って reset する script を用意したのでメモ なお、 Drizzle のセットアップ等は割愛する。

drizzle-seed, tsx の install

下記コマンドを実行する

tsx は 後作成する Script を実行するために利用する。 yarn や pnpm 等利用している方は適宜コマンドを変更してください。

npm i drizzle-seed tsx

Script を用意

import { drizzle } from 'drizzle-orm/postgres-js';
import { reset } from 'drizzle-seed';
import postgres from 'postgres';
import * as schema from './drizzle/schema';

export async function clearDatabase() {
  console.log('🗑️ Clearing database...');

  const sql = postgres(process.env.DATABASE_URL, { prepare: false });
  const db = drizzle(sql, { schema });
  await reset(db, schema);
  await sql.end();
}

(async () => {
  await clearDatabase();
})();

Script を実行する

> tsx ./reset.ts

🗑️ Clearing database...

Ref