Skip to content

Commit a7fd424

Browse files
committed
fix: add asset id index on nft_metadata table
1 parent e5c2219 commit a7fd424

File tree

3 files changed

+21
-2
lines changed

3 files changed

+21
-2
lines changed
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { MigrationInterface, QueryRunner } from 'typeorm';
2+
import { NftMetadataEntity } from '@cardano-sdk/projection-typeorm';
3+
4+
export class NftMetadataIndexMigration1726479765002 implements MigrationInterface {
5+
static entity = NftMetadataEntity;
6+
7+
public async up(queryRunner: QueryRunner): Promise<void> {
8+
await queryRunner.query('DROP INDEX "public"."IDX_nft_metadata_user_token_asset_id"');
9+
}
10+
11+
public async down(queryRunner: QueryRunner): Promise<void> {
12+
await queryRunner.query(
13+
'CREATE INDEX "IDX_nft_metadata_user_token_asset_id" ON "nft_metadata" ("user_token_asset_id") '
14+
);
15+
}
16+
}

packages/cardano-services/src/Projection/migrations/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { HandleDefaultMigrations1693830294136 } from './1693830294136-handle-def
1111
import { HandleMetadataTableMigrations1693490983715 } from './1693490983715-handle-metadata-table';
1212
import { HandleParentMigration1700556589063 } from './1700556589063-handle-parent';
1313
import { HandleTableMigration1686138943349 } from './1686138943349-handle-table';
14+
import { NftMetadataIndexMigration1726479765002 } from './1726479765002-nft-metadata-index';
1415
import { NftMetadataTableMigration1690269355640 } from './1690269355640-nft-metadata-table';
1516
import { OutputTableMigration1682519108367 } from './1682519108367-output-table';
1617
import { PoolDelistedTableMigration1695899010515 } from './1695899010515-pool-delisted-table';
@@ -55,5 +56,6 @@ export const migrations: ProjectionMigration[] = [
5556
PoolRewardsTableMigrations1698175956871,
5657
HandleParentMigration1700556589063,
5758
RewardsPledgeNumericMigration1715157190230,
58-
GovernanceActionMigration1724168174191
59+
GovernanceActionMigration1724168174191,
60+
NftMetadataIndexMigration1726479765002
5961
];

packages/projection-typeorm/src/entity/NftMetadata.entity.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Asset, Cardano } from '@cardano-sdk/core';
22
import { AssetEntity } from './Asset.entity';
33
import { BlockEntity } from './Block.entity';
4-
import { Column, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn } from 'typeorm';
4+
import { Column, Entity, Index, JoinColumn, ManyToOne, PrimaryGeneratedColumn } from 'typeorm';
55
import { OnDeleteCascadeRelationOptions, OnDeleteSetNullRelationOptions } from './util';
66
import { sanitizeNullCharacters, serializableObj } from './transformers';
77

@@ -34,6 +34,7 @@ export class NftMetadataEntity {
3434
parentAsset?: AssetEntity;
3535
@ManyToOne(() => AssetEntity, OnDeleteSetNullRelationOptions)
3636
userTokenAsset?: AssetEntity | null;
37+
@Index()
3738
@Column('varchar', { nullable: true })
3839
userTokenAssetId?: Cardano.AssetId | null;
3940
@ManyToOne(() => BlockEntity, OnDeleteCascadeRelationOptions)

0 commit comments

Comments
 (0)