2022-05-04 12:22:50 +02:00
|
|
|
import { migrations } from "@budibase/backend-core"
|
2022-01-24 11:48:59 +01:00
|
|
|
|
|
|
|
// 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"
|
2022-03-16 09:18:09 +01:00
|
|
|
import * as developerQuota from "./functions/developerQuota"
|
|
|
|
import * as publishedAppsQuota from "./functions/publishedAppsQuota"
|
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
|
|
|
{
|
2022-05-04 12:22:50 +02:00
|
|
|
type: migrations.MIGRATION_TYPES.GLOBAL,
|
2022-01-24 11:48:59 +01:00
|
|
|
name: "user_email_view_casing",
|
|
|
|
fn: userEmailViewCasing.run,
|
|
|
|
},
|
|
|
|
{
|
2022-05-04 12:22:50 +02:00
|
|
|
type: migrations.MIGRATION_TYPES.GLOBAL,
|
2022-01-24 11:48:59 +01:00
|
|
|
name: "quotas_1",
|
|
|
|
fn: quota1.run,
|
|
|
|
},
|
2022-01-27 11:40:31 +01:00
|
|
|
{
|
2022-05-04 12:22:50 +02:00
|
|
|
type: migrations.MIGRATION_TYPES.APP,
|
2022-01-27 11:40:31 +01:00
|
|
|
name: "app_urls",
|
|
|
|
opts: { all: true },
|
|
|
|
fn: appUrls.run,
|
|
|
|
},
|
2022-03-04 14:42:50 +01:00
|
|
|
{
|
2022-05-04 12:22:50 +02:00
|
|
|
type: migrations.MIGRATION_TYPES.GLOBAL,
|
2022-03-16 09:18:09 +01:00
|
|
|
name: "developer_quota",
|
|
|
|
fn: developerQuota.run,
|
|
|
|
},
|
|
|
|
{
|
2022-05-04 12:22:50 +02:00
|
|
|
type: migrations.MIGRATION_TYPES.GLOBAL,
|
2022-03-16 09:18:09 +01:00
|
|
|
name: "published_apps_quota",
|
|
|
|
fn: publishedAppsQuota.run,
|
2022-03-04 14:42:50 +01:00
|
|
|
},
|
2022-05-04 12:22:50 +02:00
|
|
|
{
|
|
|
|
type: migrations.MIGRATION_TYPES.GLOBAL,
|
|
|
|
name: "event_backfill",
|
|
|
|
fn: publishedAppsQuota.run,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
type: migrations.MIGRATION_TYPES.APP,
|
|
|
|
name: "event_app_backfill",
|
|
|
|
fn: publishedAppsQuota.run,
|
|
|
|
},
|
2022-01-24 11:48:59 +01:00
|
|
|
]
|
|
|
|
|
|
|
|
export const migrate = async (options?: MigrationOptions) => {
|
2022-05-04 12:22:50 +02:00
|
|
|
await migrations.runMigrations(MIGRATIONS, options)
|
2022-01-24 11:48:59 +01:00
|
|
|
}
|