From 169655c35dfc69c7febf524dc627b7a5ebca776e Mon Sep 17 00:00:00 2001 From: David Darke Date: Tue, 3 Mar 2026 10:38:03 +0000 Subject: [PATCH 1/4] Added a check to create db if not available --- packages/cli/src/commands/pull-database.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/cli/src/commands/pull-database.ts b/packages/cli/src/commands/pull-database.ts index 2bd5f2e..7b0e553 100644 --- a/packages/cli/src/commands/pull-database.ts +++ b/packages/cli/src/commands/pull-database.ts @@ -81,6 +81,10 @@ export async function handler() { ) .then(async () => { await stopRunningMessage(); + await execute(`wp db check`).catch(async () => { + await execute(`wp db create`); + console.log("Local database created."); + }); console.log("Database downloaded."); const stopRunningMessage2 = startRunningMessage("Importing database"); await execute(`wp db query < ${tmpFile}`) From 7c01ae931be85c451d4ae8837b76d039c5921791 Mon Sep 17 00:00:00 2001 From: David Darke Date: Tue, 3 Mar 2026 10:42:17 +0000 Subject: [PATCH 2/4] Moved log line --- packages/cli/src/commands/pull-database.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/src/commands/pull-database.ts b/packages/cli/src/commands/pull-database.ts index 7b0e553..680e318 100644 --- a/packages/cli/src/commands/pull-database.ts +++ b/packages/cli/src/commands/pull-database.ts @@ -81,11 +81,11 @@ export async function handler() { ) .then(async () => { await stopRunningMessage(); + console.log("Database downloaded."); await execute(`wp db check`).catch(async () => { await execute(`wp db create`); console.log("Local database created."); }); - console.log("Database downloaded."); const stopRunningMessage2 = startRunningMessage("Importing database"); await execute(`wp db query < ${tmpFile}`) .then(async () => { From a1d41f43e12d85daf51349ba2567adf0063c4968 Mon Sep 17 00:00:00 2001 From: David Darke Date: Tue, 3 Mar 2026 10:43:20 +0000 Subject: [PATCH 3/4] Revert "add new args to setup database command" This reverts commit 9c39102c7d2d3e6a138c6ef02505f29410b380b0. --- .changeset/tall-signs-call.md | 5 -- .changeset/wise-falcons-cheat.md | 5 -- packages/cli/src/commands/setup-database.ts | 81 ++------------------- 3 files changed, 7 insertions(+), 84 deletions(-) delete mode 100644 .changeset/tall-signs-call.md delete mode 100644 .changeset/wise-falcons-cheat.md diff --git a/.changeset/tall-signs-call.md b/.changeset/tall-signs-call.md deleted file mode 100644 index abc681d..0000000 --- a/.changeset/tall-signs-call.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@atomicsmash/cli": major ---- - -Add --no-existing-database flag diff --git a/.changeset/wise-falcons-cheat.md b/.changeset/wise-falcons-cheat.md deleted file mode 100644 index ca9cf6a..0000000 --- a/.changeset/wise-falcons-cheat.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@atomicsmash/cli": minor ---- - -Add --drop-database flag diff --git a/packages/cli/src/commands/setup-database.ts b/packages/cli/src/commands/setup-database.ts index c1c6043..32ec1ad 100644 --- a/packages/cli/src/commands/setup-database.ts +++ b/packages/cli/src/commands/setup-database.ts @@ -1,5 +1,3 @@ -import type { YargsInstance } from "../cli.js"; -import type { ArgumentsCamelCase } from "yargs"; import { exec } from "node:child_process"; import { performance } from "node:perf_hooks"; import { promisify } from "node:util"; @@ -87,25 +85,7 @@ async function activatePluginsWithRetry( export const command = "setup-database"; export const describe = "Create a new database and initialise the site with no content."; -export const builder = function (yargs: YargsInstance) { - return yargs.options({ - "no-existing-database": { - boolean: true, - default: false, - description: - "Declare that you're not about to pull a database from elsewhere.", - }, - "drop-database": { - boolean: true, - default: false, - description: - "Deletes the database if it already exists before setting up a new one.", - }, - }); -}; -export async function handler( - args: ArgumentsCamelCase["argv"]>>, -) { +export async function handler() { const execute = promisify(exec); const smashConfig = await getSmashConfig(); // These must remain env vars because they differ for each dev. @@ -120,46 +100,9 @@ export async function handler( ); } else { const { projectName, themeFolderName } = smashConfig; + const stopRunningMessage = startRunningMessage("Initialising database"); performance.mark("Start"); - if (args.dropDatabase) { - const stopRunningMessage = startRunningMessage( - "Removing existing database", - ); - await execute("wp db drop --yes") - .then(async () => { - await stopRunningMessage(); - performance.mark("database-removed"); - console.log( - `Database removed. (${convertMeasureToPrettyString( - performance.measure("database-removed", "Start"), - )})`, - ); - }) - .catch(async (error: { stderr: string }) => { - await stopRunningMessage(); - if ("stderr" in error && error.stderr?.startsWith("ERROR 1008")) { - performance.mark("database-removed"); - console.log( - `No database to delete, moving on. (${convertMeasureToPrettyString( - performance.measure("database-removed", "Start"), - )})`, - ); - } else { - console.error(error); - process.exitCode = 1; - } - }); - } - if (process.exitCode !== 0) { - return; - } - const stopRunningMessage2 = startRunningMessage("Initialising database"); await execute("wp db create") - .then(() => { - if (args.noExistingDatabase) { - throw new Error("No existing database, exiting early..."); - } - }) .then(() => { return execute( `wp core install --url=http://${process.env.CI ? "127.0.0.1" : `${projectName}.test`}/ --title=Temp --admin_user=Bot --admin_email=fake@fake.com --admin_password=password`, @@ -169,10 +112,7 @@ export async function handler( performance.mark("wordpress-tables"); console.log( `Wordpress database tables installed. (${convertMeasureToPrettyString( - performance.measure( - "wordpress-tables", - args.dropDatabase ? "database-removed" : "Start", - ), + performance.measure("wordpress-tables", "Start"), )})`, ); if (addCustomUser) { @@ -239,23 +179,16 @@ export async function handler( performance.measure("theme", "plugins"), )})`, ); - await stopRunningMessage2(); + await stopRunningMessage(); console.log( `Database set up${addCustomUser ? ` and ${process.env.WORDPRESS_USER} user added` : !process.env.CI ? ". To set up a user, run the `wp user create` command." : ""}. (${convertMeasureToPrettyString( performance.measure("everything", "Start"), )})`, ); }) - .catch(async (error: Error | { stderr: string }) => { - await stopRunningMessage2(); - if ( - error instanceof Error && - error.message === "No existing database, exiting early..." - ) { - console.log(error.message); - return; - } - if ("stderr" in error && error.stderr?.startsWith("ERROR 1007")) { + .catch(async (error: { stderr: string }) => { + await stopRunningMessage(); + if (error.stderr?.startsWith("ERROR 1007")) { console.error( "Database already exists with the name in the wp-config. Please delete that database first with `wp db drop --yes`", ); From 9dcf680cb1f9ed5ec7c6798f93e76cfa09614c15 Mon Sep 17 00:00:00 2001 From: David Darke Date: Tue, 3 Mar 2026 10:58:12 +0000 Subject: [PATCH 4/4] Added changeset --- .changeset/wacky-maps-deny.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/wacky-maps-deny.md diff --git a/.changeset/wacky-maps-deny.md b/.changeset/wacky-maps-deny.md new file mode 100644 index 0000000..d8f7610 --- /dev/null +++ b/.changeset/wacky-maps-deny.md @@ -0,0 +1,5 @@ +--- +"@atomicsmash/cli": minor +--- + +Added a check to see if DB exists