0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

概要

RemixにてPrismaのseedを使ってテーブルにデータを追加する方法を簡単にまとめる。

前提

下記の記事を参考にusersテーブルが作成されていること。

方法

  1. prismaディレクトリ直下にseed.tsというファイルを作成し、下記の様に記載する。(touch prisma/seed.ts を実行して作成した。)

    prisma/seed.ts
    import { PrismaClient } from '@prisma/client';
    
    const prisma = new PrismaClient();
    
    async function main() {
      const users = [
        { name: 'Alice', email: 'alice@example.com' },
        { name: 'Bob', email: 'bob@example.com' },
        { name: 'Charlie', email: 'charlie@example.com' },
        { name: 'David', email: 'david@example.com' },
        { name: 'Eve', email: 'eve@example.com' },
        { name: 'Frank', email: 'frank@example.com' },
        { name: 'Grace', email: 'grace@example.com' },
        { name: 'Helen', email: 'helen@example.com' },
        { name: 'Isaac', email: 'isaac@example.com' },
        { name: 'Judy', email: 'judy@example.com' }
      ];
    
      for (const user of users) {
        await prisma.users.create({
          data: user
        });
      }
    
      console.log('10 users created.');
    }
    
    main()
      .catch((e) => {
        console.error(e);
        process.exit(1);
      })
      .finally(async () => {
        await prisma.$disconnect();
      });
    
  2. 下記を実行して関連パッケージをインストールする。

    npm install -D typescript ts-node @types/node
    
  3. 下記の内容をpackage.jsonのscriptsの中に記載する。

    package.json
    "seed": "node --loader ts-node/esm prisma/seed.ts"
    
  4. 下記を実行してマイグレーションを行う。

    npx prisma migrate dev
    
  5. 下記を実行してseedの実行を行う。

    npm run seed
    
  6. 一旦テーブル内のデータだけを消してからseedしたい場合下記を実行する。

    npx prisma migrate reset
    npm run seed
    

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?