31 lines
1.0 KiB
TypeScript
31 lines
1.0 KiB
TypeScript
import { Knex } from "knex";
|
|
|
|
export default async (knex: Knex): Promise<void> => {
|
|
const addColumn = async (table: string, column: string, type: string) => {
|
|
if (!(await knex.schema.hasTable(table))) return;
|
|
if (!(await knex.schema.hasColumn(table, column))) {
|
|
await knex.schema.alterTable(table, (t) => (t as any)[type](column));
|
|
}
|
|
};
|
|
|
|
const dropColumn = async (table: string, column: string) => {
|
|
if (!(await knex.schema.hasTable(table))) return;
|
|
if (await knex.schema.hasColumn(table, column)) {
|
|
await knex.schema.alterTable(table, (t) => t.dropColumn(column));
|
|
}
|
|
};
|
|
|
|
const alterColumnType = async (table: string, column: string, type: string) => {
|
|
if (!(await knex.schema.hasTable(table))) return;
|
|
if (await knex.schema.hasColumn(table, column)) {
|
|
await knex.schema.alterTable(table, (t) => {
|
|
(t as any)[type](column).alter();
|
|
});
|
|
}
|
|
};
|
|
|
|
// memories 表新增字段
|
|
await addColumn("memories", "episodesId", "text");
|
|
await addColumn("memories", "agentType", "text");
|
|
};
|