drizzle-team / drizzle-orm

Headless TypeScript ORM with a head. Runs on Node, Bun and Deno. Lives on the Edge and yes, it's a JavaScript ORM too 😅
https://orm.drizzle.team
Apache License 2.0
21.52k stars 487 forks source link

[FEATURE]: Push feature for Dirzzle-orm #1340

Open ansarizafar opened 9 months ago

ansarizafar commented 9 months ago

Describe what you want

I am using libsql and I am building a desktop and a mobile app. I can't bundle migrations folder with my app. Dirizzle-kit has a push command for altering database schema rapidly but we can't push changes with drizzle-orm at runtime.

lLike migrate, please provide a push function with drizzle-orm for schema modifications without first generating the migration scripts.

ansarizafar commented 8 months ago

@AndriiSherman Is it possible to add push schema feature to Drizzle-ORM?

hugo082 commented 6 months ago

Would be very useful to generate memory based SQL clients for testing purposes:

import { createClient } from '@libsql/client';
import { pushSchema } from 'drizzle-orm';
import { drizzle } from 'drizzle-orm/libsql';

import { schema } from './schema';

export const createDatabaseClientMock = () => {
  const client = createClient({ url: ':memory:' });

  const db = drizzle(client);

  await pushSchema(schema, db)

  return db;
};
riccox commented 1 month ago

Would be very useful to generate memory based SQL clients for testing purposes:

import { createClient } from '@libsql/client';
import { pushSchema } from 'drizzle-orm';
import { drizzle } from 'drizzle-orm/libsql';

import { schema } from './schema';

export const createDatabaseClientMock = () => {
  const client = createClient({ url: ':memory:' });

  const db = drizzle(client);

  await pushSchema(schema, db)

  return db;
};

@hugo082 I'm using v0.30.10, it does not have this command. Module '"drizzle-orm"' has no exported member 'pushSchema'