mirror of
https://github.com/aljazceru/ditto.git
synced 2026-01-30 02:24:29 +01:00
Add unattached_media table, insert one when uploading a file
This commit is contained in:
34
src/db/migrations/007_unattached_media.ts
Normal file
34
src/db/migrations/007_unattached_media.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
import { Kysely, sql } from '@/deps.ts';
|
||||
|
||||
export async function up(db: Kysely<any>): Promise<void> {
|
||||
await db.schema
|
||||
.createTable('unattached_media')
|
||||
.addColumn('id', 'text', (c) => c.primaryKey())
|
||||
.addColumn('pukey', 'text', (c) => c.notNull())
|
||||
.addColumn('cid', 'text', (c) => c.notNull())
|
||||
.addColumn('data', 'text', (c) => c.notNull())
|
||||
.addColumn('uploaded_at', 'datetime', (c) => c.notNull().defaultTo(sql`CURRENT_TIMESTAMP`))
|
||||
.execute();
|
||||
|
||||
await db.schema
|
||||
.createIndex('unattached_media_id')
|
||||
.on('unattached_media')
|
||||
.column('id')
|
||||
.execute();
|
||||
|
||||
await db.schema
|
||||
.createIndex('unattached_media_pukey')
|
||||
.on('unattached_media')
|
||||
.column('pukey')
|
||||
.execute();
|
||||
|
||||
await db.schema
|
||||
.createIndex('unattached_media_cid')
|
||||
.on('unattached_media')
|
||||
.column('cid')
|
||||
.execute();
|
||||
}
|
||||
|
||||
export async function down(db: Kysely<any>): Promise<void> {
|
||||
await db.schema.dropTable('unattached_media').execute();
|
||||
}
|
||||
30
src/db/unattached-media.ts
Normal file
30
src/db/unattached-media.ts
Normal file
@@ -0,0 +1,30 @@
|
||||
import { db } from '@/db.ts';
|
||||
import { uuid62 } from '@/deps.ts';
|
||||
|
||||
interface UnattachedMedia {
|
||||
id: string;
|
||||
pukey: string;
|
||||
cid: string;
|
||||
data: {
|
||||
name?: string;
|
||||
mime?: string;
|
||||
width?: number;
|
||||
height?: number;
|
||||
size?: number;
|
||||
description?: string;
|
||||
};
|
||||
uploaded_at: Date;
|
||||
}
|
||||
|
||||
function insertUnattachedMedia(media: Omit<UnattachedMedia, 'id' | 'uploaded_at'>) {
|
||||
return db.insertInto('unattached_media')
|
||||
.values({
|
||||
id: uuid62.v4(),
|
||||
uploaded_at: new Date(),
|
||||
...media,
|
||||
data: JSON.stringify(media.data),
|
||||
})
|
||||
.execute();
|
||||
}
|
||||
|
||||
export { insertUnattachedMedia };
|
||||
Reference in New Issue
Block a user