index.ts 722 B

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