migrate.ts 750 B

12345678910111213141516171819202122232425262728293031323334
  1. /**
  2. * umzug cli
  3. *
  4. * Usage:
  5. * pnpm ts-node bin/migrate.ts
  6. */
  7. import { resolve } from 'node:path';
  8. import { MongoClient } from 'mongodb';
  9. import { MongoDBStorage, Umzug } from 'umzug';
  10. import { prisma } from '~/utils/prisma';
  11. (async () => {
  12. const url = process.env.MONGO_URI;
  13. if (url === undefined) {
  14. throw new Error('MONGO_URI is required');
  15. }
  16. const client = new MongoClient(url);
  17. await client.connect();
  18. const umzug = new Umzug({
  19. migrations: { glob: resolve(__dirname, '../prisma/migrations/*.(ts|js)') },
  20. context: prisma,
  21. storage: new MongoDBStorage({
  22. connection: client.db(),
  23. }),
  24. logger: console,
  25. });
  26. if (require.main === module) {
  27. await umzug.runAsCLI();
  28. process.exit(0);
  29. }
  30. })();