Home / Function/ pgSuite.changeIndexFields() — drizzle-orm Function Reference

pgSuite.changeIndexFields() — drizzle-orm Function Reference

Architecture documentation for the pgSuite.changeIndexFields() function in pg.test.ts from the drizzle-orm codebase.

Entity Profile

Dependency Diagram

graph TD
  7ea85bc3_85db_d146_3188_4bc3604c274e["pgSuite.changeIndexFields()"]
  0408ab8f_6d6f_cdae_29f3_25c8efadbfae["pg.test.ts"]
  7ea85bc3_85db_d146_3188_4bc3604c274e -->|defined in| 0408ab8f_6d6f_cdae_29f3_25c8efadbfae
  style 7ea85bc3_85db_d146_3188_4bc3604c274e fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

drizzle-kit/tests/push/pg.test.ts lines 569–634

	async changeIndexFields() {
		const client = new PGlite();

		const schema1 = {
			users: pgTable(
				'users',
				{
					id: serial('id').primaryKey(),
					name: text('name'),
				},
				(t) => ({
					removeColumn: index('removeColumn').on(t.name, t.id),
					addColumn: index('addColumn').on(t.name.desc()).with({ fillfactor: 70 }),
					removeExpression: index('removeExpression')
						.on(t.name.desc(), sql`name`)
						.concurrently(),
					addExpression: index('addExpression').on(t.id.desc()),
					changeExpression: index('changeExpression').on(t.id.desc(), sql`name`),
					changeName: index('changeName').on(t.name.desc(), t.id.asc().nullsLast()).with({ fillfactor: 70 }),
					changeWith: index('changeWith').on(t.name).with({ fillfactor: 70 }),
					changeUsing: index('changeUsing').on(t.name),
				}),
			),
		};

		const schema2 = {
			users: pgTable(
				'users',
				{
					id: serial('id').primaryKey(),
					name: text('name'),
				},
				(t) => ({
					removeColumn: index('removeColumn').on(t.name),
					addColumn: index('addColumn').on(t.name.desc(), t.id.nullsLast()).with({ fillfactor: 70 }),
					removeExpression: index('removeExpression').on(t.name.desc()).concurrently(),
					addExpression: index('addExpression').on(t.id.desc()),
					changeExpression: index('changeExpression').on(t.id.desc(), sql`name desc`),
					changeName: index('newName')
						.on(t.name.desc(), sql`name`)
						.with({ fillfactor: 70 }),
					changeWith: index('changeWith').on(t.name).with({ fillfactor: 90 }),
					changeUsing: index('changeUsing').using('hash', t.name),
				}),
			),
		};

		const { statements, sqlStatements } = await diffTestSchemasPush(client, schema1, schema2, [], false, ['public']);

		expect(sqlStatements).toStrictEqual([
			'DROP INDEX "changeName";',
			'DROP INDEX "addColumn";',
			'DROP INDEX "changeExpression";',
			'DROP INDEX "changeUsing";',
			'DROP INDEX "changeWith";',
			'DROP INDEX "removeColumn";',
			'DROP INDEX "removeExpression";',
			'CREATE INDEX "newName" ON "users" USING btree ("name" DESC NULLS LAST,name) WITH (fillfactor=70);',
			'CREATE INDEX "addColumn" ON "users" USING btree ("name" DESC NULLS LAST,"id") WITH (fillfactor=70);',
			'CREATE INDEX "changeExpression" ON "users" USING btree ("id" DESC NULLS LAST,name desc);',
			'CREATE INDEX "changeUsing" ON "users" USING hash ("name");',
			'CREATE INDEX "changeWith" ON "users" USING btree ("name") WITH (fillfactor=90);',
			'CREATE INDEX "removeColumn" ON "users" USING btree ("name");',
			'CREATE INDEX CONCURRENTLY "removeExpression" ON "users" USING btree ("name" DESC NULLS LAST);',
		]);
	},

Domain

Subdomains

Frequently Asked Questions

What does pgSuite.changeIndexFields() do?
pgSuite.changeIndexFields() is a function in the drizzle-orm codebase, defined in drizzle-kit/tests/push/pg.test.ts.
Where is pgSuite.changeIndexFields() defined?
pgSuite.changeIndexFields() is defined in drizzle-kit/tests/push/pg.test.ts at line 569.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free