budibase/packages/server/src/migrations/index.ts

63 lines
1.2 KiB
TypeScript
Raw Normal View History

2022-01-24 11:48:59 +01:00
import CouchDB from "../db"
const {
MIGRATION_TYPES,
runMigrations,
} = require("@budibase/backend-core/migrations")
// migration functions
import * as userEmailViewCasing from "./functions/userEmailViewCasing"
import * as quota1 from "./functions/quotas1"
2022-01-27 11:40:31 +01:00
import * as appUrls from "./functions/appUrls"
import * as userBuildersView from "./functions/userBuildersView"
2022-01-24 11:48:59 +01:00
export interface Migration {
type: string
name: string
2022-01-27 11:40:31 +01:00
opts?: object
2022-01-24 11:48:59 +01:00
fn: Function
}
/**
* e.g.
* {
* tenantIds: ['bb'],
* force: {
* global: ['quota_1']
* }
* }
*/
export interface MigrationOptions {
tenantIds?: string[]
2022-03-08 15:21:41 +01:00
force?: {
2022-01-24 11:48:59 +01:00
[type: string]: string[]
}
}
2022-01-27 11:40:31 +01:00
export const MIGRATIONS: Migration[] = [
2022-01-24 11:48:59 +01:00
{
type: MIGRATION_TYPES.GLOBAL,
name: "user_email_view_casing",
fn: userEmailViewCasing.run,
},
{
type: MIGRATION_TYPES.GLOBAL,
name: "quotas_1",
fn: quota1.run,
},
2022-01-27 11:40:31 +01:00
{
type: MIGRATION_TYPES.APP,
name: "app_urls",
opts: { all: true },
fn: appUrls.run,
},
{
type: MIGRATION_TYPES.GLOBAL,
name: "user_builders_view",
fn: userBuildersView.run,
},
2022-01-24 11:48:59 +01:00
]
export const migrate = async (options?: MigrationOptions) => {
await runMigrations(CouchDB, MIGRATIONS, options)
}