Drizzle + Turso Migration Problem
Npm Scripts:
Issue: When I run db:push, it tries to create the entire db instead of looking at the migration file
Drizzle Config
Database Index ("/src/server/db/index.ts")
Database Schema ("src/server/db/schema.ts")
"db:push": "drizzle-kit push:sqlite",
"db:generate": "drizzle-kit generate:sqlite","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;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 } });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),
};
},
);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),
};
},
);