@casekit/orm2-migrate 1.0.1 → 1.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
1
  import { SQLStatement } from "@casekit/orm2";
2
- export declare const createExtensionsSql: (extension: string) => SQLStatement;
2
+ export declare const createExtensionsSql: (schema: string, extension: string) => SQLStatement;
@@ -1,4 +1,4 @@
1
1
  import { sql } from "@casekit/orm2";
2
- export const createExtensionsSql = (extension) => {
3
- return sql `CREATE EXTENSION IF NOT EXISTS ${sql.ident(extension)};`;
2
+ export const createExtensionsSql = (schema, extension) => {
3
+ return sql `CREATE EXTENSION IF NOT EXISTS ${sql.ident(extension)} SCHEMA ${sql.ident(schema)};`;
4
4
  };
@@ -10,8 +10,8 @@ describe("createExtensionsSql", () => {
10
10
  await db.close();
11
11
  });
12
12
  test("creates SQL statement for creating an extension", async () => {
13
- const statement = createExtensionsSql("uuid-ossp");
14
- expect(statement.text).toEqual('CREATE EXTENSION IF NOT EXISTS "uuid-ossp";');
13
+ const statement = createExtensionsSql("foo", "uuid-ossp");
14
+ expect(statement.text).toEqual('CREATE EXTENSION IF NOT EXISTS "uuid-ossp" SCHEMA "foo";');
15
15
  expect(statement.values).toEqual([]);
16
16
  await db.transact(async (db) => {
17
17
  await expect(db.query(statement)).resolves.not.toThrow();
@@ -4,7 +4,7 @@ export const createTableSql = (model) => {
4
4
  const fields = Object.values(model.fields);
5
5
  const primaryKey = model.primaryKey;
6
6
  const statement = sql `CREATE TABLE IF NOT EXISTS ${sql.ident(model.schema)}.${sql.ident(model.table)} (\n`;
7
- for (const field of fields) {
7
+ fields.forEach((field, i) => {
8
8
  statement.append ` ${sql.ident(field.column)} `;
9
9
  // dangerously appending raw SQL here, but we need to,
10
10
  // and this only comes from user-defined schemas, so should be ok
@@ -27,10 +27,11 @@ export const createTableSql = (model) => {
27
27
  statement.push(sql.literal(JSON.stringify(field.default)));
28
28
  }
29
29
  }
30
- statement.append `,\n`;
31
- }
30
+ if (i < fields.length - 1)
31
+ statement.append `,\n`;
32
+ });
32
33
  if (primaryKey.length > 0) {
33
- statement.append ` PRIMARY KEY (${sql.join(primaryKey.map((pk) => sql.ident(pk.column)), ", ")})`;
34
+ statement.append `,\n PRIMARY KEY (${sql.join(primaryKey.map((pk) => sql.ident(pk.column)), ", ")})`;
34
35
  }
35
36
  statement.append `\n);`;
36
37
  return statement;
package/build/push.js CHANGED
@@ -10,7 +10,9 @@ export const push = async (db) => {
10
10
  await db.transact(async (db) => {
11
11
  for (const extension of db.config.extensions) {
12
12
  console.log(` - Creating extension "${extension}"`);
13
- await db.query(createExtensionsSql(extension));
13
+ for (const schema of schemas) {
14
+ await db.query(createExtensionsSql(schema, extension));
15
+ }
14
16
  }
15
17
  for (const schema of schemas.values()) {
16
18
  console.log(` - Creating schema "${schema}"`);
package/package.json CHANGED
@@ -1,16 +1,16 @@
1
1
  {
2
2
  "name": "@casekit/orm2-migrate",
3
3
  "description": "",
4
- "version": "1.0.1",
4
+ "version": "1.0.2",
5
5
  "author": "",
6
6
  "dependencies": {
7
7
  "camelcase": "^8.0.0",
8
8
  "es-toolkit": "^1.39.3",
9
- "@casekit/orm2": "1.0.1",
10
- "@casekit/orm2-config": "1.0.1",
11
- "@casekit/sql": "1.0.1",
12
- "@casekit/orm2-schema": "1.0.1",
13
- "@casekit/toolbox": "1.0.1"
9
+ "@casekit/orm2": "1.0.2",
10
+ "@casekit/orm2-config": "1.0.2",
11
+ "@casekit/sql": "1.0.2",
12
+ "@casekit/orm2-schema": "1.0.2",
13
+ "@casekit/toolbox": "1.0.2"
14
14
  },
15
15
  "devDependencies": {
16
16
  "@casekit/unindent": "^1.0.5",
@@ -26,9 +26,9 @@
26
26
  "uuid": "^11.1.0",
27
27
  "vite-tsconfig-paths": "^5.1.4",
28
28
  "vitest": "^3.2.4",
29
- "@casekit/orm2-fixtures": "1.0.1",
30
- "@casekit/prettier-config": "1.0.1",
31
- "@casekit/tsconfig": "1.0.1"
29
+ "@casekit/tsconfig": "1.0.2",
30
+ "@casekit/prettier-config": "1.0.2",
31
+ "@casekit/orm2-fixtures": "1.0.2"
32
32
  },
33
33
  "exports": {
34
34
  ".": "./build/index.js"