mirror of
https://github.com/FranP-code/create-better-t-stack.git
synced 2025-10-12 23:52:15 +00:00
fix(cli): improve Alchemy deployment and D1 scripts
This commit is contained in:
@@ -29,7 +29,12 @@ export async function displayPostInstallInstructions(
|
|||||||
} = config;
|
} = config;
|
||||||
|
|
||||||
const isConvex = backend === "convex";
|
const isConvex = backend === "convex";
|
||||||
const runCmd = packageManager === "npm" ? "npm run" : packageManager;
|
const runCmd =
|
||||||
|
packageManager === "npm"
|
||||||
|
? "npm run"
|
||||||
|
: packageManager === "pnpm"
|
||||||
|
? "pnpm run"
|
||||||
|
: "bun run";
|
||||||
const cdCmd = `cd ${relativePath}`;
|
const cdCmd = `cd ${relativePath}`;
|
||||||
const hasHuskyOrBiome =
|
const hasHuskyOrBiome =
|
||||||
addons?.includes("husky") || addons?.includes("biome");
|
addons?.includes("husky") || addons?.includes("biome");
|
||||||
@@ -253,7 +258,7 @@ async function getDatabaseInstructions(
|
|||||||
);
|
);
|
||||||
instructions.push(
|
instructions.push(
|
||||||
`${pc.cyan("4.")} Generate migrations: ${pc.white(
|
`${pc.cyan("4.")} Generate migrations: ${pc.white(
|
||||||
`cd apps/server && ${packageManager} db:generate`,
|
`cd apps/server && ${runCmd} db:generate`,
|
||||||
)}`,
|
)}`,
|
||||||
);
|
);
|
||||||
instructions.push(
|
instructions.push(
|
||||||
@@ -269,6 +274,11 @@ async function getDatabaseInstructions(
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (dbSetup === "d1" && serverDeploy === "alchemy") {
|
if (dbSetup === "d1" && serverDeploy === "alchemy") {
|
||||||
|
instructions.push(
|
||||||
|
`${pc.yellow(
|
||||||
|
"NOTE:",
|
||||||
|
)} D1 migrations are automatically handled by Alchemy`,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (orm === "prisma") {
|
if (orm === "prisma") {
|
||||||
@@ -293,7 +303,11 @@ async function getDatabaseInstructions(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
instructions.push(`${pc.cyan("•")} Apply schema: ${`${runCmd} db:push`}`);
|
instructions.push(`${pc.cyan("•")} Apply schema: ${`${runCmd} db:push`}`);
|
||||||
instructions.push(`${pc.cyan("•")} Database UI: ${`${runCmd} db:studio`}`);
|
if (!(dbSetup === "d1" && serverDeploy === "alchemy")) {
|
||||||
|
instructions.push(
|
||||||
|
`${pc.cyan("•")} Database UI: ${`${runCmd} db:studio`}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
} else if (orm === "drizzle") {
|
} else if (orm === "drizzle") {
|
||||||
if (dbSetup === "docker") {
|
if (dbSetup === "docker") {
|
||||||
instructions.push(
|
instructions.push(
|
||||||
@@ -303,7 +317,11 @@ async function getDatabaseInstructions(
|
|||||||
if (dbSetup !== "d1") {
|
if (dbSetup !== "d1") {
|
||||||
instructions.push(`${pc.cyan("•")} Apply schema: ${`${runCmd} db:push`}`);
|
instructions.push(`${pc.cyan("•")} Apply schema: ${`${runCmd} db:push`}`);
|
||||||
}
|
}
|
||||||
instructions.push(`${pc.cyan("•")} Database UI: ${`${runCmd} db:studio`}`);
|
if (!(dbSetup === "d1" && serverDeploy === "alchemy")) {
|
||||||
|
instructions.push(
|
||||||
|
`${pc.cyan("•")} Database UI: ${`${runCmd} db:studio`}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
if (database === "sqlite" && dbSetup !== "d1") {
|
if (database === "sqlite" && dbSetup !== "d1") {
|
||||||
instructions.push(
|
instructions.push(
|
||||||
`${pc.cyan(
|
`${pc.cyan(
|
||||||
@@ -394,15 +412,15 @@ function getAlchemyDeployInstructions(
|
|||||||
|
|
||||||
if (webDeploy === "alchemy" && serverDeploy !== "alchemy") {
|
if (webDeploy === "alchemy" && serverDeploy !== "alchemy") {
|
||||||
instructions.push(
|
instructions.push(
|
||||||
`${pc.bold("Deploy web to Alchemy:")}\n${pc.cyan("•")} Deploy: ${`cd apps/web && ${runCmd} deploy`}`,
|
`${pc.bold("Deploy web with Alchemy:")}\n${pc.cyan("•")} Dev: ${`cd apps/web && ${runCmd} alchemy:dev`}\n${pc.cyan("•")} Deploy: ${`cd apps/web && ${runCmd} deploy`}\n${pc.cyan("•")} Destroy: ${`cd apps/web && ${runCmd} destroy`}`,
|
||||||
);
|
);
|
||||||
} else if (serverDeploy === "alchemy" && webDeploy !== "alchemy") {
|
} else if (serverDeploy === "alchemy" && webDeploy !== "alchemy") {
|
||||||
instructions.push(
|
instructions.push(
|
||||||
`${pc.bold("Deploy server to Alchemy:")}\n${pc.cyan("•")} Deploy: ${`cd apps/server && ${runCmd} deploy`}`,
|
`${pc.bold("Deploy server with Alchemy:")}\n${pc.cyan("•")} Dev: ${`cd apps/server && ${runCmd} alchemy:dev`}\n${pc.cyan("•")} Deploy: ${`cd apps/server && ${runCmd} deploy`}\n${pc.cyan("•")} Destroy: ${`cd apps/server && ${runCmd} destroy`}`,
|
||||||
);
|
);
|
||||||
} else if (webDeploy === "alchemy" && serverDeploy === "alchemy") {
|
} else if (webDeploy === "alchemy" && serverDeploy === "alchemy") {
|
||||||
instructions.push(
|
instructions.push(
|
||||||
`${pc.bold("Deploy to Alchemy:")}\n${pc.cyan("•")} Deploy: ${`${runCmd} deploy`}`,
|
`${pc.bold("Deploy with Alchemy:")}\n${pc.cyan("•")} Dev: ${`${runCmd} alchemy:dev`}\n${pc.cyan("•")} Deploy: ${`${runCmd} deploy`}\n${pc.cyan("•")} Destroy: ${`${runCmd} destroy`}`,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -71,13 +71,19 @@ async function updateRootPackageJson(
|
|||||||
}
|
}
|
||||||
if (needsDbScripts) {
|
if (needsDbScripts) {
|
||||||
scripts["db:push"] = `turbo -F ${backendPackageName} db:push`;
|
scripts["db:push"] = `turbo -F ${backendPackageName} db:push`;
|
||||||
scripts["db:studio"] = `turbo -F ${backendPackageName} db:studio`;
|
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||||
|
scripts["db:studio"] = `turbo -F ${backendPackageName} db:studio`;
|
||||||
|
}
|
||||||
if (options.orm === "prisma") {
|
if (options.orm === "prisma") {
|
||||||
scripts["db:generate"] = `turbo -F ${backendPackageName} db:generate`;
|
scripts["db:generate"] = `turbo -F ${backendPackageName} db:generate`;
|
||||||
scripts["db:migrate"] = `turbo -F ${backendPackageName} db:migrate`;
|
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||||
|
scripts["db:migrate"] = `turbo -F ${backendPackageName} db:migrate`;
|
||||||
|
}
|
||||||
} else if (options.orm === "drizzle") {
|
} else if (options.orm === "drizzle") {
|
||||||
scripts["db:generate"] = `turbo -F ${backendPackageName} db:generate`;
|
scripts["db:generate"] = `turbo -F ${backendPackageName} db:generate`;
|
||||||
scripts["db:migrate"] = `turbo -F ${backendPackageName} db:migrate`;
|
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||||
|
scripts["db:migrate"] = `turbo -F ${backendPackageName} db:migrate`;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (options.dbSetup === "docker") {
|
if (options.dbSetup === "docker") {
|
||||||
@@ -98,17 +104,23 @@ async function updateRootPackageJson(
|
|||||||
}
|
}
|
||||||
if (needsDbScripts) {
|
if (needsDbScripts) {
|
||||||
scripts["db:push"] = `pnpm --filter ${backendPackageName} db:push`;
|
scripts["db:push"] = `pnpm --filter ${backendPackageName} db:push`;
|
||||||
scripts["db:studio"] = `pnpm --filter ${backendPackageName} db:studio`;
|
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||||
|
scripts["db:studio"] = `pnpm --filter ${backendPackageName} db:studio`;
|
||||||
|
}
|
||||||
if (options.orm === "prisma") {
|
if (options.orm === "prisma") {
|
||||||
scripts["db:generate"] =
|
scripts["db:generate"] =
|
||||||
`pnpm --filter ${backendPackageName} db:generate`;
|
`pnpm --filter ${backendPackageName} db:generate`;
|
||||||
scripts["db:migrate"] =
|
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||||
`pnpm --filter ${backendPackageName} db:migrate`;
|
scripts["db:migrate"] =
|
||||||
|
`pnpm --filter ${backendPackageName} db:migrate`;
|
||||||
|
}
|
||||||
} else if (options.orm === "drizzle") {
|
} else if (options.orm === "drizzle") {
|
||||||
scripts["db:generate"] =
|
scripts["db:generate"] =
|
||||||
`pnpm --filter ${backendPackageName} db:generate`;
|
`pnpm --filter ${backendPackageName} db:generate`;
|
||||||
scripts["db:migrate"] =
|
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||||
`pnpm --filter ${backendPackageName} db:migrate`;
|
scripts["db:migrate"] =
|
||||||
|
`pnpm --filter ${backendPackageName} db:migrate`;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (options.dbSetup === "docker") {
|
if (options.dbSetup === "docker") {
|
||||||
@@ -130,18 +142,24 @@ async function updateRootPackageJson(
|
|||||||
}
|
}
|
||||||
if (needsDbScripts) {
|
if (needsDbScripts) {
|
||||||
scripts["db:push"] = `npm run db:push --workspace ${backendPackageName}`;
|
scripts["db:push"] = `npm run db:push --workspace ${backendPackageName}`;
|
||||||
scripts["db:studio"] =
|
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||||
`npm run db:studio --workspace ${backendPackageName}`;
|
scripts["db:studio"] =
|
||||||
|
`npm run db:studio --workspace ${backendPackageName}`;
|
||||||
|
}
|
||||||
if (options.orm === "prisma") {
|
if (options.orm === "prisma") {
|
||||||
scripts["db:generate"] =
|
scripts["db:generate"] =
|
||||||
`npm run db:generate --workspace ${backendPackageName}`;
|
`npm run db:generate --workspace ${backendPackageName}`;
|
||||||
scripts["db:migrate"] =
|
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||||
`npm run db:migrate --workspace ${backendPackageName}`;
|
scripts["db:migrate"] =
|
||||||
|
`npm run db:migrate --workspace ${backendPackageName}`;
|
||||||
|
}
|
||||||
} else if (options.orm === "drizzle") {
|
} else if (options.orm === "drizzle") {
|
||||||
scripts["db:generate"] =
|
scripts["db:generate"] =
|
||||||
`npm run db:generate --workspace ${backendPackageName}`;
|
`npm run db:generate --workspace ${backendPackageName}`;
|
||||||
scripts["db:migrate"] =
|
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||||
`npm run db:migrate --workspace ${backendPackageName}`;
|
scripts["db:migrate"] =
|
||||||
|
`npm run db:migrate --workspace ${backendPackageName}`;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (options.dbSetup === "docker") {
|
if (options.dbSetup === "docker") {
|
||||||
@@ -164,17 +182,24 @@ async function updateRootPackageJson(
|
|||||||
}
|
}
|
||||||
if (needsDbScripts) {
|
if (needsDbScripts) {
|
||||||
scripts["db:push"] = `bun run --filter ${backendPackageName} db:push`;
|
scripts["db:push"] = `bun run --filter ${backendPackageName} db:push`;
|
||||||
scripts["db:studio"] = `bun run --filter ${backendPackageName} db:studio`;
|
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||||
|
scripts["db:studio"] =
|
||||||
|
`bun run --filter ${backendPackageName} db:studio`;
|
||||||
|
}
|
||||||
if (options.orm === "prisma") {
|
if (options.orm === "prisma") {
|
||||||
scripts["db:generate"] =
|
scripts["db:generate"] =
|
||||||
`bun run --filter ${backendPackageName} db:generate`;
|
`bun run --filter ${backendPackageName} db:generate`;
|
||||||
scripts["db:migrate"] =
|
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||||
`bun run --filter ${backendPackageName} db:migrate`;
|
scripts["db:migrate"] =
|
||||||
|
`bun run --filter ${backendPackageName} db:migrate`;
|
||||||
|
}
|
||||||
} else if (options.orm === "drizzle") {
|
} else if (options.orm === "drizzle") {
|
||||||
scripts["db:generate"] =
|
scripts["db:generate"] =
|
||||||
`bun run --filter ${backendPackageName} db:generate`;
|
`bun run --filter ${backendPackageName} db:generate`;
|
||||||
scripts["db:migrate"] =
|
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||||
`bun run --filter ${backendPackageName} db:migrate`;
|
scripts["db:migrate"] =
|
||||||
|
`bun run --filter ${backendPackageName} db:migrate`;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (options.dbSetup === "docker") {
|
if (options.dbSetup === "docker") {
|
||||||
@@ -249,14 +274,22 @@ async function updateServerPackageJson(
|
|||||||
|
|
||||||
if (options.orm === "prisma") {
|
if (options.orm === "prisma") {
|
||||||
scripts["db:push"] = "prisma db push";
|
scripts["db:push"] = "prisma db push";
|
||||||
scripts["db:studio"] = "prisma studio";
|
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||||
|
scripts["db:studio"] = "prisma studio";
|
||||||
|
}
|
||||||
scripts["db:generate"] = "prisma generate";
|
scripts["db:generate"] = "prisma generate";
|
||||||
scripts["db:migrate"] = "prisma migrate dev";
|
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||||
|
scripts["db:migrate"] = "prisma migrate dev";
|
||||||
|
}
|
||||||
} else if (options.orm === "drizzle") {
|
} else if (options.orm === "drizzle") {
|
||||||
scripts["db:push"] = "drizzle-kit push";
|
scripts["db:push"] = "drizzle-kit push";
|
||||||
scripts["db:studio"] = "drizzle-kit studio";
|
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||||
|
scripts["db:studio"] = "drizzle-kit studio";
|
||||||
|
}
|
||||||
scripts["db:generate"] = "drizzle-kit generate";
|
scripts["db:generate"] = "drizzle-kit generate";
|
||||||
scripts["db:migrate"] = "drizzle-kit migrate";
|
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||||
|
scripts["db:migrate"] = "drizzle-kit migrate";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user