Variable prismaConst

prisma: {
    client: {
        addData: <const PrismaClient extends BasePrismaClient>(
            prismaClient: Readonly<PrismaClient>,
            data: IsAny<PrismaClient> extends true
                ? any
                : PrismaAddModelData<PrismaClient>,
        ) => Promise<void>;
        dumpData: <const PrismaClient extends BasePrismaClient>(
            prismaClient: PrismaClient,
            options?: Readonly<PartialWithUndefined<PrismaDataDumpOptions>>,
        ) => Promise<
            Partial<
                {
                    [ModelName in string
                    | number]: PrismaBasicModel<PrismaClient, ModelName>[]
                },
            >,
        >;
        generate: (
            schemaFilePath: string,
            env?: Record<string, string>,
        ) => Promise<void>;
        isCurrent: (
            __namedParameters: {
                jsClientOutputDir: string;
                schemaFilePath: string;
            },
        ) => Promise<boolean>;
        listModelNames: <const PrismaClient extends BasePrismaClient>(
            prismaClient: PrismaClient,
        ) => PrismaModelName<PrismaClient>[];
    };
    database: {
        diff: (
            schemaFilePath: string,
            env?: Record<string, string>,
        ) => Promise<string>;
        hasDiff: (
            schemaFilePath: string,
            env?: Record<string, string>,
        ) => Promise<boolean>;
        resetDev: (
            schemaFilePath: string,
            env?: Record<string, string>,
        ) => Promise<void>;
    };
    migration: {
        applyDev: (
            schemaFilePath: string,
            env?: Record<string, string>,
        ) => Promise<void>;
        applyProd: (
            schemaFilePath: string,
            env?: Record<string, string>,
        ) => Promise<void>;
        create: (
            __namedParameters: { createOnly?: boolean; migrationName: string },
            schemaFilePath: string,
            env?: Record<string, string>,
        ) => Promise<void>;
        status: (
            schemaFilePath: string,
            env?: Record<string, string>,
        ) => Promise<PrismaMigrationStatus>;
    };
} = ...

Centralized Prisma API from @augment-vir/node.

  • Deploy to production

    • prisma.migration.applyProd()
  • Update dev environment

    • Apply migrations: prisma.migration.applyDev

    • Generate client: prisma.client.isCurrent

      • If false, run prisma.client.generate

Type declaration

  • client: {
        addData: <const PrismaClient extends BasePrismaClient>(
            prismaClient: Readonly<PrismaClient>,
            data: IsAny<PrismaClient> extends true
                ? any
                : PrismaAddModelData<PrismaClient>,
        ) => Promise<void>;
        dumpData: <const PrismaClient extends BasePrismaClient>(
            prismaClient: PrismaClient,
            options?: Readonly<PartialWithUndefined<PrismaDataDumpOptions>>,
        ) => Promise<
            Partial<
                {
                    [ModelName in string
                    | number]: PrismaBasicModel<PrismaClient, ModelName>[]
                },
            >,
        >;
        generate: (
            schemaFilePath: string,
            env?: Record<string, string>,
        ) => Promise<void>;
        isCurrent: (
            __namedParameters: {
                jsClientOutputDir: string;
                schemaFilePath: string;
            },
        ) => Promise<boolean>;
        listModelNames: <const PrismaClient extends BasePrismaClient>(
            prismaClient: PrismaClient,
        ) => PrismaModelName<PrismaClient>[];
    }
    • addData: <const PrismaClient extends BasePrismaClient>(
          prismaClient: Readonly<PrismaClient>,
          data: IsAny<PrismaClient> extends true
              ? any
              : PrismaAddModelData<PrismaClient>,
      ) => Promise<void>

      Adds a collection of create data entries to a database through a PrismaClient instance. This is particularly useful for setting up mocks in a mock PrismaClient.

      import {addPrismaModelData} from '@augment-vir/common';
      import {PrismaClient} from '@prisma/client';

      await addPrismaModelData(new PrismaClient(), [
      {
      user: {
      mockUser1: {
      first_name: 'one',
      id: 123,
      // etc.
      },
      mockUser2: {
      first_name: 'two',
      id: 124,
      authRole: 'user',
      // etc.
      },
      },
      },
      {
      region: [
      {
      id: 1,
      name: 'North America',
      // etc.
      },
      {
      id: 2,
      name: 'Europe',
      // etc.
      },
      ],
      },
      ]);
    • dumpData: <const PrismaClient extends BasePrismaClient>(
          prismaClient: PrismaClient,
          options?: Readonly<PartialWithUndefined<PrismaDataDumpOptions>>,
      ) => Promise<
          Partial<
              {
                  [ModelName in string
                  | number]: PrismaBasicModel<PrismaClient, ModelName>[]
              },
          >,
      >

      Dump data from the current database through a PrismaClient instance.

    • generate: (schemaFilePath: string, env?: Record<string, string>) => Promise<void>

      Runs Prisma generators included in the given Prisma schema (which usually includes the Prisma JS client). This will work even if the database doesn't exist yet.

      import {prisma} from '@augment-vir/node';

      prisma.client.generate('../../prisma/schema.prisma');
    • isCurrent: (
          __namedParameters: { jsClientOutputDir: string; schemaFilePath: string },
      ) => Promise<boolean>

      Detects if the current generated Prisma JS Client was generated from the current Prisma schema.

    • listModelNames: <const PrismaClient extends BasePrismaClient>(
          prismaClient: PrismaClient,
      ) => PrismaModelName<PrismaClient>[]

      List all model names in the given Prisma client.

  • database: {
        diff: (
            schemaFilePath: string,
            env?: Record<string, string>,
        ) => Promise<string>;
        hasDiff: (
            schemaFilePath: string,
            env?: Record<string, string>,
        ) => Promise<boolean>;
        resetDev: (
            schemaFilePath: string,
            env?: Record<string, string>,
        ) => Promise<void>;
    }
    • diff: (schemaFilePath: string, env?: Record<string, string>) => Promise<string>

      Gets a string list of all differences between the current database and the Prisma schema that should control it.

    • hasDiff: (schemaFilePath: string, env?: Record<string, string>) => Promise<boolean>

      Uses prisma.database.diff to detect if there are any differences between the current database and the Prisma schema that should control it.

    • resetDev: (schemaFilePath: string, env?: Record<string, string>) => Promise<void>

      Force resets a dev database to match the current Prisma schema and migrations.

      This will destroy all data. Do not use in production.

  • migration: {
        applyDev: (
            schemaFilePath: string,
            env?: Record<string, string>,
        ) => Promise<void>;
        applyProd: (
            schemaFilePath: string,
            env?: Record<string, string>,
        ) => Promise<void>;
        create: (
            __namedParameters: { createOnly?: boolean; migrationName: string },
            schemaFilePath: string,
            env?: Record<string, string>,
        ) => Promise<void>;
        status: (
            schemaFilePath: string,
            env?: Record<string, string>,
        ) => Promise<PrismaMigrationStatus>;
    }