From ec66121db6a60bf7ec46f70c21796c8aeacc99b1 Mon Sep 17 00:00:00 2001 From: kevin olson Date: Wed, 16 Jul 2025 17:47:08 -0500 Subject: [PATCH 1/4] =?UTF-8?q?=F0=9F=90=9B=20potential=20fix=20for=20inse?= =?UTF-8?q?rts=20not=20always=20being=20on=20newlines?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/collection.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/collection.ts b/src/utils/collection.ts index ce5381f24..2f4472afb 100644 --- a/src/utils/collection.ts +++ b/src/utils/collection.ts @@ -178,7 +178,7 @@ export function generateCollectionInsert(collection: ResolvedCollection, data: P values.push(`'${valuesHash}'`) let index = 0 - const sql = `INSERT INTO ${collection.tableName} VALUES (${'?, '.repeat(values.length).slice(0, -2)});` + const sql = `\nINSERT INTO ${collection.tableName} VALUES (${'?, '.repeat(values.length).slice(0, -2)});` .replace(/\?/g, () => values[index++] as string) if (sql.length < MAX_SQL_QUERY_SIZE) { From 121d6a86c5f51ea4d6748cf55bb29744527a9261 Mon Sep 17 00:00:00 2001 From: kevin olson Date: Wed, 16 Jul 2025 17:51:13 -0500 Subject: [PATCH 2/4] =?UTF-8?q?=E2=9C=85=20update=20tests=20for=20newline?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/unit/generateCollectionInsert.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/unit/generateCollectionInsert.test.ts b/test/unit/generateCollectionInsert.test.ts index 4f855d03e..45b6012a2 100644 --- a/test/unit/generateCollectionInsert.test.ts +++ b/test/unit/generateCollectionInsert.test.ts @@ -24,7 +24,7 @@ describe('generateCollectionInsert', () => { }) expect(sql[0]).toBe([ - `INSERT INTO ${getTableName('content')}`, + `\nINSERT INTO ${getTableName('content')}`, ' VALUES', ' (\'foo.md\', \'[]\', 13, \'2022-01-01T00:00:00.000Z\', \'md\', \'{}\', \'{"foo":"bar"}\', \'untitled\', true, \'foo\', \'bnUQ85H_Zf72faGIQhV0i9QeTEnf1ueEIaMAO8aAAGw\');', ].join('')) @@ -57,7 +57,7 @@ describe('generateCollectionInsert', () => { }) expect(sql[0]).toBe([ - `INSERT INTO ${getTableName('content')}`, + `\nINSERT INTO ${getTableName('content')}`, ' VALUES', ' (\'foo.md\', \'["foo"]\', 42, \'2022-01-02T00:00:00.000Z\', \'md\', \'{}\', \'{"foo":"baz"}\', \'foo\', false, \'foo\', \'ImMjHvkHl82Jx1bjlpanb9d3i_HQIbjNFverKKbZLME\');', ].join('')) @@ -98,7 +98,7 @@ describe('generateCollectionInsert', () => { const hash = 'QMyFxMru9gVfaNx0fzjs5is7SvAZMEy3tNDANjkdogg' expect(sql[0]).toBe([ - `INSERT INTO ${getTableName('content')}`, + `\nINSERT INTO ${getTableName('content')}`, ' VALUES', ` ('foo.md', '${querySlices[0]}', 'md', '{}', 'foo', '${hash}-${sliceIndexes[0]}');`, ].join('')) From 4569f319e80d16757dca610650ff2474005f9f5d Mon Sep 17 00:00:00 2001 From: kevin olson Date: Wed, 16 Jul 2025 17:56:46 -0500 Subject: [PATCH 3/4] =?UTF-8?q?=E2=9C=85=20update=20tests=20for=20newline?= =?UTF-8?q?=20-=20round=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/unit/generateCollectionInsert.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unit/generateCollectionInsert.test.ts b/test/unit/generateCollectionInsert.test.ts index 45b6012a2..ce7cb61b3 100644 --- a/test/unit/generateCollectionInsert.test.ts +++ b/test/unit/generateCollectionInsert.test.ts @@ -98,7 +98,7 @@ describe('generateCollectionInsert', () => { const hash = 'QMyFxMru9gVfaNx0fzjs5is7SvAZMEy3tNDANjkdogg' expect(sql[0]).toBe([ - `\nINSERT INTO ${getTableName('content')}`, + `INSERT INTO ${getTableName('content')}`, ' VALUES', ` ('foo.md', '${querySlices[0]}', 'md', '{}', 'foo', '${hash}-${sliceIndexes[0]}');`, ].join('')) From 3a94df9e2fc545fe6b2873b4b30bc835b705dbc4 Mon Sep 17 00:00:00 2001 From: Farnabaz Date: Mon, 21 Jul 2025 18:55:01 +0200 Subject: [PATCH 4/4] fix(nuxthub): missing line separator in database migrations --- src/presets/nuxthub.ts | 4 ++-- src/utils/collection.ts | 2 +- test/unit/generateCollectionInsert.test.ts | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/presets/nuxthub.ts b/src/presets/nuxthub.ts index 8d0922ed1..b898a2130 100644 --- a/src/presets/nuxthub.ts +++ b/src/presets/nuxthub.ts @@ -34,12 +34,12 @@ export default definePreset({ await mkdir(resolve(nitroConfig.rootDir!, '.data/hub/database/queries'), { recursive: true }) let i = 1 // Drop info table and prepare for new dump - let dump = 'DROP TABLE IF EXISTS _content_info;\n' + let dump = 'DROP TABLE IF EXISTS _content_info;' const dumpFiles: Array<{ file: string, content: string }> = [] Object.values(options.manifest.dump).forEach((value) => { value.forEach((line) => { if ((dump.length + line.length) < 1000000) { - dump += line + '\n' + dump += '\n' + line } else { dumpFiles.push({ file: `content-database-${String(i).padStart(3, '0')}.sql`, content: dump.trim() }) diff --git a/src/utils/collection.ts b/src/utils/collection.ts index 2f4472afb..ce5381f24 100644 --- a/src/utils/collection.ts +++ b/src/utils/collection.ts @@ -178,7 +178,7 @@ export function generateCollectionInsert(collection: ResolvedCollection, data: P values.push(`'${valuesHash}'`) let index = 0 - const sql = `\nINSERT INTO ${collection.tableName} VALUES (${'?, '.repeat(values.length).slice(0, -2)});` + const sql = `INSERT INTO ${collection.tableName} VALUES (${'?, '.repeat(values.length).slice(0, -2)});` .replace(/\?/g, () => values[index++] as string) if (sql.length < MAX_SQL_QUERY_SIZE) { diff --git a/test/unit/generateCollectionInsert.test.ts b/test/unit/generateCollectionInsert.test.ts index ce7cb61b3..4f855d03e 100644 --- a/test/unit/generateCollectionInsert.test.ts +++ b/test/unit/generateCollectionInsert.test.ts @@ -24,7 +24,7 @@ describe('generateCollectionInsert', () => { }) expect(sql[0]).toBe([ - `\nINSERT INTO ${getTableName('content')}`, + `INSERT INTO ${getTableName('content')}`, ' VALUES', ' (\'foo.md\', \'[]\', 13, \'2022-01-01T00:00:00.000Z\', \'md\', \'{}\', \'{"foo":"bar"}\', \'untitled\', true, \'foo\', \'bnUQ85H_Zf72faGIQhV0i9QeTEnf1ueEIaMAO8aAAGw\');', ].join('')) @@ -57,7 +57,7 @@ describe('generateCollectionInsert', () => { }) expect(sql[0]).toBe([ - `\nINSERT INTO ${getTableName('content')}`, + `INSERT INTO ${getTableName('content')}`, ' VALUES', ' (\'foo.md\', \'["foo"]\', 42, \'2022-01-02T00:00:00.000Z\', \'md\', \'{}\', \'{"foo":"baz"}\', \'foo\', false, \'foo\', \'ImMjHvkHl82Jx1bjlpanb9d3i_HQIbjNFverKKbZLME\');', ].join(''))