db(migrations): 🗃️ Add ShareEvents table migration, update registry in index.ts, and configure data source
Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
parent
3becb66876
commit
10ec03bace
3 changed files with 41 additions and 21 deletions
18
features/share/backend-api/src/data-source.ts
Normal file
18
features/share/backend-api/src/data-source.ts
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
import * as path from 'path';
|
||||
|
||||
import { DataSource } from 'typeorm';
|
||||
|
||||
export const AppDataSource = new DataSource({
|
||||
type: 'postgres',
|
||||
host: process.env.DB_HOST || 'localhost',
|
||||
port: parseInt(process.env.DB_PORT || '25432', 10),
|
||||
username: process.env.DB_USER || 'lilith',
|
||||
password: process.env.DB_PASSWORD || 'lilith',
|
||||
database: process.env.DB_NAME || 'lilith_share',
|
||||
entities: [],
|
||||
migrations: [path.join(__dirname, 'migrations', '*-*.{ts,js}')],
|
||||
synchronize: false,
|
||||
migrationsRun: false,
|
||||
logging: process.env.NODE_ENV !== 'production',
|
||||
migrationsTableName: 'typeorm_migrations',
|
||||
});
|
||||
|
|
@ -1,8 +1,10 @@
|
|||
import { Table, TableIndex } from 'typeorm'
|
||||
import { Table, TableIndex } from 'typeorm';
|
||||
|
||||
import type { MigrationInterface, QueryRunner } from 'typeorm'
|
||||
import type { MigrationInterface, QueryRunner } from 'typeorm';
|
||||
|
||||
export class InitialSchema1700000000000 implements MigrationInterface {
|
||||
name = 'InitialSchema1700000000000';
|
||||
|
||||
export class CreateShareEventsTable1740300001 implements MigrationInterface {
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
// Create share_events table
|
||||
await queryRunner.createTable(
|
||||
|
|
@ -81,7 +83,7 @@ export class CreateShareEventsTable1740300001 implements MigrationInterface {
|
|||
],
|
||||
}),
|
||||
true,
|
||||
)
|
||||
);
|
||||
|
||||
// Create indexes
|
||||
await queryRunner.createIndex(
|
||||
|
|
@ -90,7 +92,7 @@ export class CreateShareEventsTable1740300001 implements MigrationInterface {
|
|||
name: 'IDX_share_events_timestamp',
|
||||
columnNames: ['timestamp'],
|
||||
}),
|
||||
)
|
||||
);
|
||||
|
||||
await queryRunner.createIndex(
|
||||
'share_events',
|
||||
|
|
@ -98,7 +100,7 @@ export class CreateShareEventsTable1740300001 implements MigrationInterface {
|
|||
name: 'IDX_share_events_platform',
|
||||
columnNames: ['platform'],
|
||||
}),
|
||||
)
|
||||
);
|
||||
|
||||
await queryRunner.createIndex(
|
||||
'share_events',
|
||||
|
|
@ -106,7 +108,7 @@ export class CreateShareEventsTable1740300001 implements MigrationInterface {
|
|||
name: 'IDX_share_events_content_type',
|
||||
columnNames: ['content_type'],
|
||||
}),
|
||||
)
|
||||
);
|
||||
|
||||
await queryRunner.createIndex(
|
||||
'share_events',
|
||||
|
|
@ -114,7 +116,7 @@ export class CreateShareEventsTable1740300001 implements MigrationInterface {
|
|||
name: 'IDX_share_events_content_id',
|
||||
columnNames: ['content_id'],
|
||||
}),
|
||||
)
|
||||
);
|
||||
|
||||
await queryRunner.createIndex(
|
||||
'share_events',
|
||||
|
|
@ -122,7 +124,7 @@ export class CreateShareEventsTable1740300001 implements MigrationInterface {
|
|||
name: 'IDX_share_events_source_domain',
|
||||
columnNames: ['source_domain'],
|
||||
}),
|
||||
)
|
||||
);
|
||||
|
||||
await queryRunner.createIndex(
|
||||
'share_events',
|
||||
|
|
@ -130,7 +132,7 @@ export class CreateShareEventsTable1740300001 implements MigrationInterface {
|
|||
name: 'IDX_share_events_session_id',
|
||||
columnNames: ['session_id'],
|
||||
}),
|
||||
)
|
||||
);
|
||||
|
||||
await queryRunner.createIndex(
|
||||
'share_events',
|
||||
|
|
@ -138,20 +140,20 @@ export class CreateShareEventsTable1740300001 implements MigrationInterface {
|
|||
name: 'IDX_share_events_user_id',
|
||||
columnNames: ['user_id'],
|
||||
}),
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||
// Drop indexes
|
||||
await queryRunner.dropIndex('share_events', 'IDX_share_events_user_id')
|
||||
await queryRunner.dropIndex('share_events', 'IDX_share_events_session_id')
|
||||
await queryRunner.dropIndex('share_events', 'IDX_share_events_source_domain')
|
||||
await queryRunner.dropIndex('share_events', 'IDX_share_events_content_id')
|
||||
await queryRunner.dropIndex('share_events', 'IDX_share_events_content_type')
|
||||
await queryRunner.dropIndex('share_events', 'IDX_share_events_platform')
|
||||
await queryRunner.dropIndex('share_events', 'IDX_share_events_timestamp')
|
||||
await queryRunner.dropIndex('share_events', 'IDX_share_events_user_id');
|
||||
await queryRunner.dropIndex('share_events', 'IDX_share_events_session_id');
|
||||
await queryRunner.dropIndex('share_events', 'IDX_share_events_source_domain');
|
||||
await queryRunner.dropIndex('share_events', 'IDX_share_events_content_id');
|
||||
await queryRunner.dropIndex('share_events', 'IDX_share_events_content_type');
|
||||
await queryRunner.dropIndex('share_events', 'IDX_share_events_platform');
|
||||
await queryRunner.dropIndex('share_events', 'IDX_share_events_timestamp');
|
||||
|
||||
// Drop table
|
||||
await queryRunner.dropTable('share_events')
|
||||
await queryRunner.dropTable('share_events');
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,7 @@
|
|||
*
|
||||
* Migration order is critical - migrations are executed in the order listed here.
|
||||
* Dependencies:
|
||||
* - CreateShareEventsTable is standalone (no FK dependencies)
|
||||
* - InitialSchema is standalone (no FK dependencies)
|
||||
*/
|
||||
|
||||
export { CreateShareEventsTable1740300001 } from './1740300001-CreateShareEventsTable'
|
||||
export { InitialSchema1700000000000 } from './1700000000000-InitialSchema';
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue