Drizzle + Turso Migration Problem

Npm Scripts:
"db:push": "drizzle-kit push:sqlite",
"db:generate": "drizzle-kit generate:sqlite",


Issue: When I run db:push, it tries to create the entire db instead of looking at the migration file

Drizzle Config
import { type Config } from "drizzle-kit";

export default {
  schema: "./src/server/db/schema.ts",
  driver: "turso",
  dbCredentials: {
    url: process.env.DATABASE_URL!,
    authToken: process.env.DATABASE_AUTH_TOKEN!,
  },
  out: "./drizzle",
  tablesFilter: ["learningcambridgeforall_*"],
  verbose: true,
  strict: true,
} satisfies Config;


Database Index ("/src/server/db/index.ts")
import { drizzle } from "drizzle-orm/libsql";
import { createClient } from "@libsql/client";

import { subjects } from "./schema";

const client = createClient({
  url: process.env.DATABASE_URL!,
  authToken: process.env.DATABASE_AUTH_TOKEN!,
});

export const db = drizzle(client, { schema: { ...subjects } });


Database Schema ("src/server/db/schema.ts")
import { sql } from "drizzle-orm";
import { text, integer, sqliteTable, index } from "drizzle-orm/sqlite-core";

export const subjects = sqliteTable(
  "subjects",
  {
    id: integer("id").notNull().primaryKey(),
    title: text("title").notNull(),
    overview: text("overview").notNull(),
    visibility: text("visibility", {
      enum: ["Pending", "Public", "Private"],
    })
      .notNull()
      .default("Pending"),
    educationLevel: text("education_level", {
      enum: ["a_level", "o_level"],
    }).notNull(),
    createdAt: text("created_at")
      .default(sql`CURRENT_TIMESTAMP`)
      .notNull(),
  },
  (table) => {
    return {
      titleIdx: index("title_idx").on(table.title),
    };
  },
);
Was this page helpful?