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;
|
||||
|
||||
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 hasHuskyOrBiome =
|
||||
addons?.includes("husky") || addons?.includes("biome");
|
||||
@@ -253,7 +258,7 @@ async function getDatabaseInstructions(
|
||||
);
|
||||
instructions.push(
|
||||
`${pc.cyan("4.")} Generate migrations: ${pc.white(
|
||||
`cd apps/server && ${packageManager} db:generate`,
|
||||
`cd apps/server && ${runCmd} db:generate`,
|
||||
)}`,
|
||||
);
|
||||
instructions.push(
|
||||
@@ -269,6 +274,11 @@ async function getDatabaseInstructions(
|
||||
}
|
||||
|
||||
if (dbSetup === "d1" && serverDeploy === "alchemy") {
|
||||
instructions.push(
|
||||
`${pc.yellow(
|
||||
"NOTE:",
|
||||
)} D1 migrations are automatically handled by Alchemy`,
|
||||
);
|
||||
}
|
||||
|
||||
if (orm === "prisma") {
|
||||
@@ -293,7 +303,11 @@ async function getDatabaseInstructions(
|
||||
);
|
||||
}
|
||||
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") {
|
||||
if (dbSetup === "docker") {
|
||||
instructions.push(
|
||||
@@ -303,7 +317,11 @@ async function getDatabaseInstructions(
|
||||
if (dbSetup !== "d1") {
|
||||
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") {
|
||||
instructions.push(
|
||||
`${pc.cyan(
|
||||
@@ -394,15 +412,15 @@ function getAlchemyDeployInstructions(
|
||||
|
||||
if (webDeploy === "alchemy" && serverDeploy !== "alchemy") {
|
||||
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") {
|
||||
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") {
|
||||
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) {
|
||||
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") {
|
||||
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") {
|
||||
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") {
|
||||
@@ -98,17 +104,23 @@ async function updateRootPackageJson(
|
||||
}
|
||||
if (needsDbScripts) {
|
||||
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") {
|
||||
scripts["db:generate"] =
|
||||
`pnpm --filter ${backendPackageName} db:generate`;
|
||||
scripts["db:migrate"] =
|
||||
`pnpm --filter ${backendPackageName} db:migrate`;
|
||||
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||
scripts["db:migrate"] =
|
||||
`pnpm --filter ${backendPackageName} db:migrate`;
|
||||
}
|
||||
} else if (options.orm === "drizzle") {
|
||||
scripts["db:generate"] =
|
||||
`pnpm --filter ${backendPackageName} db:generate`;
|
||||
scripts["db:migrate"] =
|
||||
`pnpm --filter ${backendPackageName} db:migrate`;
|
||||
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||
scripts["db:migrate"] =
|
||||
`pnpm --filter ${backendPackageName} db:migrate`;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (options.dbSetup === "docker") {
|
||||
@@ -130,18 +142,24 @@ async function updateRootPackageJson(
|
||||
}
|
||||
if (needsDbScripts) {
|
||||
scripts["db:push"] = `npm run db:push --workspace ${backendPackageName}`;
|
||||
scripts["db:studio"] =
|
||||
`npm run db:studio --workspace ${backendPackageName}`;
|
||||
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||
scripts["db:studio"] =
|
||||
`npm run db:studio --workspace ${backendPackageName}`;
|
||||
}
|
||||
if (options.orm === "prisma") {
|
||||
scripts["db:generate"] =
|
||||
`npm run db:generate --workspace ${backendPackageName}`;
|
||||
scripts["db:migrate"] =
|
||||
`npm run db:migrate --workspace ${backendPackageName}`;
|
||||
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||
scripts["db:migrate"] =
|
||||
`npm run db:migrate --workspace ${backendPackageName}`;
|
||||
}
|
||||
} else if (options.orm === "drizzle") {
|
||||
scripts["db:generate"] =
|
||||
`npm run db:generate --workspace ${backendPackageName}`;
|
||||
scripts["db:migrate"] =
|
||||
`npm run db:migrate --workspace ${backendPackageName}`;
|
||||
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||
scripts["db:migrate"] =
|
||||
`npm run db:migrate --workspace ${backendPackageName}`;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (options.dbSetup === "docker") {
|
||||
@@ -164,17 +182,24 @@ async function updateRootPackageJson(
|
||||
}
|
||||
if (needsDbScripts) {
|
||||
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") {
|
||||
scripts["db:generate"] =
|
||||
`bun run --filter ${backendPackageName} db:generate`;
|
||||
scripts["db:migrate"] =
|
||||
`bun run --filter ${backendPackageName} db:migrate`;
|
||||
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||
scripts["db:migrate"] =
|
||||
`bun run --filter ${backendPackageName} db:migrate`;
|
||||
}
|
||||
} else if (options.orm === "drizzle") {
|
||||
scripts["db:generate"] =
|
||||
`bun run --filter ${backendPackageName} db:generate`;
|
||||
scripts["db:migrate"] =
|
||||
`bun run --filter ${backendPackageName} db:migrate`;
|
||||
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||
scripts["db:migrate"] =
|
||||
`bun run --filter ${backendPackageName} db:migrate`;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (options.dbSetup === "docker") {
|
||||
@@ -249,14 +274,22 @@ async function updateServerPackageJson(
|
||||
|
||||
if (options.orm === "prisma") {
|
||||
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:migrate"] = "prisma migrate dev";
|
||||
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||
scripts["db:migrate"] = "prisma migrate dev";
|
||||
}
|
||||
} else if (options.orm === "drizzle") {
|
||||
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:migrate"] = "drizzle-kit migrate";
|
||||
if (!(options.dbSetup === "d1" && options.serverDeploy === "alchemy")) {
|
||||
scripts["db:migrate"] = "drizzle-kit migrate";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user