nesoi 3.0.6 → 3.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/adapters/postgres/src/migrator/database.d.ts +3 -6
- package/lib/adapters/postgres/src/migrator/database.js +20 -20
- package/lib/adapters/postgres/src/migrator/generator/generator.d.ts +22 -0
- package/lib/adapters/postgres/src/migrator/generator/generator.js +326 -0
- package/lib/adapters/postgres/src/migrator/generator/migration.d.ts +66 -0
- package/lib/adapters/postgres/src/migrator/generator/migration.js +249 -0
- package/lib/adapters/postgres/src/migrator/generator/provider.d.ts +19 -0
- package/lib/adapters/postgres/src/migrator/{migrator.js → generator/provider.js} +23 -25
- package/lib/adapters/postgres/src/migrator/index.d.ts +47 -1
- package/lib/adapters/postgres/src/migrator/index.js +20 -3
- package/lib/adapters/postgres/src/migrator/runner/runner.d.ts +17 -0
- package/lib/adapters/postgres/src/migrator/runner/runner.js +249 -0
- package/lib/adapters/postgres/src/migrator/runner/status.d.ts +17 -0
- package/lib/adapters/postgres/src/migrator/runner/status.js +55 -0
- package/lib/adapters/postgres/src/postgres.cli.d.ts +11 -1
- package/lib/adapters/postgres/src/postgres.cli.js +34 -11
- package/lib/adapters/postgres/test/postgres.bucket_adapter.test.js +4 -4
- package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.d.ts +3 -0
- package/lib/compiler/apps/monolyth/stages/1_mkdir_stage.js +3 -0
- package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.d.ts +3 -0
- package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.js +3 -0
- package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.d.ts +3 -0
- package/lib/compiler/apps/monolyth/stages/3_copy_types_stage.js +3 -0
- package/lib/compiler/apps/monolyth/stages/4_dump_modules_stage.d.ts +3 -0
- package/lib/compiler/apps/monolyth/stages/4_dump_modules_stage.js +32 -0
- package/lib/compiler/apps/monolyth/stages/5_dump_cli_stage.d.ts +3 -0
- package/lib/compiler/apps/monolyth/stages/5_dump_cli_stage.js +3 -0
- package/lib/compiler/apps/monolyth/stages/6_dump_package_json_stage.d.ts +3 -0
- package/lib/compiler/apps/monolyth/stages/6_dump_package_json_stage.js +3 -0
- package/lib/compiler/elements/externals.element.d.ts +1 -1
- package/lib/compiler/module.js +1 -1
- package/lib/compiler/stages/1_scan_stage.d.ts +3 -0
- package/lib/compiler/stages/1_scan_stage.js +3 -0
- package/lib/compiler/stages/2_treeshake_stage.d.ts +3 -0
- package/lib/compiler/stages/2_treeshake_stage.js +3 -0
- package/lib/compiler/stages/3_extract_ts_stage.d.ts +3 -0
- package/lib/compiler/stages/3_extract_ts_stage.js +3 -0
- package/lib/compiler/stages/4_build_schemas_stage.d.ts +3 -0
- package/lib/compiler/stages/4_build_schemas_stage.js +3 -0
- package/lib/compiler/stages/5_inject_ts_stage.d.ts +3 -0
- package/lib/compiler/stages/5_inject_ts_stage.js +3 -0
- package/lib/compiler/stages/6_build_elements_stage.d.ts +3 -0
- package/lib/compiler/stages/6_build_elements_stage.js +3 -0
- package/lib/compiler/stages/7_dump_stage.d.ts +3 -0
- package/lib/compiler/stages/7_dump_stage.js +3 -0
- package/lib/compiler/stages/8_diagnose_stage.d.ts +3 -0
- package/lib/compiler/stages/8_diagnose_stage.js +3 -0
- package/lib/compiler/treeshake.js +3 -3
- package/lib/compiler/typescript/transformers/replace_import.transformer.js +8 -1
- package/lib/elements/blocks/block.builder.d.ts +6 -2
- package/lib/elements/blocks/block.builder.js +8 -4
- package/lib/elements/blocks/block.schema.d.ts +4 -0
- package/lib/elements/blocks/block.schema.js +4 -0
- package/lib/elements/blocks/job/internal/machine_job.builder.d.ts +6 -3
- package/lib/elements/blocks/job/internal/machine_job.builder.js +5 -2
- package/lib/elements/blocks/job/internal/machine_job.schema.d.ts +4 -0
- package/lib/elements/blocks/job/internal/machine_job.schema.js +4 -0
- package/lib/elements/blocks/job/internal/resource_job.builder.d.ts +4 -0
- package/lib/elements/blocks/job/internal/resource_job.builder.js +4 -0
- package/lib/elements/blocks/job/internal/resource_job.d.ts +4 -0
- package/lib/elements/blocks/job/internal/resource_job.js +4 -0
- package/lib/elements/blocks/job/internal/resource_job.schema.d.ts +4 -0
- package/lib/elements/blocks/job/internal/resource_job.schema.js +4 -0
- package/lib/elements/blocks/job/job.builder.d.ts +4 -0
- package/lib/elements/blocks/job/job.builder.js +4 -0
- package/lib/elements/blocks/job/job.d.ts +4 -0
- package/lib/elements/blocks/job/job.js +4 -0
- package/lib/elements/blocks/job/job.schema.d.ts +4 -0
- package/lib/elements/blocks/job/job.schema.js +4 -0
- package/lib/elements/blocks/machine/machine.builder.d.ts +4 -0
- package/lib/elements/blocks/machine/machine.builder.js +4 -0
- package/lib/elements/blocks/machine/machine.d.ts +12 -0
- package/lib/elements/blocks/machine/machine.js +12 -0
- package/lib/elements/blocks/machine/machine.schema.d.ts +16 -0
- package/lib/elements/blocks/machine/machine.schema.js +16 -1
- package/lib/elements/blocks/machine/machine_state.builder.d.ts +4 -0
- package/lib/elements/blocks/machine/machine_state.builder.js +4 -0
- package/lib/elements/blocks/machine/machine_transition.builder.d.ts +4 -0
- package/lib/elements/blocks/machine/machine_transition.builder.js +4 -0
- package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.d.ts +4 -0
- package/lib/elements/blocks/queue/adapters/bucket.queue_adapter.js +4 -0
- package/lib/elements/blocks/queue/adapters/queue_adapter.d.ts +4 -0
- package/lib/elements/blocks/queue/adapters/queue_adapter.js +4 -0
- package/lib/elements/blocks/queue/queue.builder.d.ts +4 -0
- package/lib/elements/blocks/queue/queue.builder.js +4 -0
- package/lib/elements/blocks/queue/queue.schema.d.ts +4 -0
- package/lib/elements/blocks/queue/queue.schema.js +4 -0
- package/lib/elements/blocks/resource/resource.builder.d.ts +4 -0
- package/lib/elements/blocks/resource/resource.builder.js +4 -0
- package/lib/elements/blocks/resource/resource.d.ts +4 -0
- package/lib/elements/blocks/resource/resource.js +4 -0
- package/lib/elements/blocks/resource/resource.schema.d.ts +4 -0
- package/lib/elements/blocks/resource/resource.schema.js +4 -0
- package/lib/elements/edge/controller/adapters/cli.controller_adapter.d.ts +4 -0
- package/lib/elements/edge/controller/adapters/cli.controller_adapter.js +4 -0
- package/lib/elements/edge/controller/adapters/controller_adapter.d.ts +4 -0
- package/lib/elements/edge/controller/adapters/controller_adapter.js +4 -0
- package/lib/elements/edge/controller/controller.builder.d.ts +16 -0
- package/lib/elements/edge/controller/controller.builder.js +16 -0
- package/lib/elements/edge/controller/controller.d.ts +4 -0
- package/lib/elements/edge/controller/controller.js +4 -0
- package/lib/elements/edge/controller/controller.schema.d.ts +16 -0
- package/lib/elements/edge/controller/controller.schema.js +16 -0
- package/lib/elements/{blocks → edge}/externals/externals.builder.d.ts +4 -0
- package/lib/elements/{blocks → edge}/externals/externals.builder.js +4 -0
- package/lib/elements/{blocks → edge}/externals/externals.schema.d.ts +4 -0
- package/lib/elements/{blocks → edge}/externals/externals.schema.js +4 -0
- package/lib/elements/entities/bucket/adapters/bucket_adapter.d.ts +16 -11
- package/lib/elements/entities/bucket/adapters/bucket_adapter.js +5 -0
- package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.d.ts +4 -0
- package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.js +4 -0
- package/lib/elements/entities/bucket/adapters/memory.nql.d.ts +4 -1
- package/lib/elements/entities/bucket/adapters/memory.nql.js +4 -1
- package/lib/elements/entities/bucket/bucket.builder.d.ts +4 -0
- package/lib/elements/entities/bucket/bucket.builder.js +4 -0
- package/lib/elements/entities/bucket/bucket.d.ts +9 -2
- package/lib/elements/entities/bucket/bucket.js +14 -7
- package/lib/elements/entities/bucket/bucket.schema.d.ts +4 -0
- package/lib/elements/entities/bucket/bucket.schema.js +4 -0
- package/lib/elements/entities/bucket/cache/bucket_cache.d.ts +8 -0
- package/lib/elements/entities/bucket/cache/bucket_cache.js +8 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.builder.d.ts +4 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.builder.js +4 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.d.ts +4 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.js +4 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.schema.d.ts +8 -0
- package/lib/elements/entities/bucket/graph/bucket_graph.schema.js +8 -0
- package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.d.ts +8 -0
- package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.js +8 -0
- package/lib/elements/entities/bucket/model/bucket_model.builder.d.ts +4 -0
- package/lib/elements/entities/bucket/model/bucket_model.builder.js +4 -0
- package/lib/elements/entities/bucket/model/bucket_model.convert.d.ts +8 -0
- package/lib/elements/entities/bucket/model/bucket_model.convert.js +8 -0
- package/lib/elements/entities/bucket/model/bucket_model.schema.d.ts +8 -0
- package/lib/elements/entities/bucket/model/bucket_model.schema.js +8 -0
- package/lib/elements/entities/bucket/model/bucket_model_field.builder.d.ts +8 -0
- package/lib/elements/entities/bucket/model/bucket_model_field.builder.js +8 -0
- package/lib/elements/entities/bucket/query/nql_compiler.d.ts +9 -0
- package/lib/elements/entities/bucket/query/nql_compiler.js +9 -0
- package/lib/elements/entities/bucket/query/nql_engine.d.ts +6 -0
- package/lib/elements/entities/bucket/query/nql_engine.js +6 -0
- package/lib/elements/entities/bucket/view/bucket_view.builder.d.ts +4 -0
- package/lib/elements/entities/bucket/view/bucket_view.builder.js +4 -0
- package/lib/elements/entities/bucket/view/bucket_view.d.ts +4 -0
- package/lib/elements/entities/bucket/view/bucket_view.js +10 -2
- package/lib/elements/entities/bucket/view/bucket_view.schema.d.ts +8 -0
- package/lib/elements/entities/bucket/view/bucket_view.schema.js +8 -0
- package/lib/elements/entities/bucket/view/bucket_view_field.builder.d.ts +8 -0
- package/lib/elements/entities/bucket/view/bucket_view_field.builder.js +8 -0
- package/lib/elements/entities/constants/constants.builder.d.ts +21 -6
- package/lib/elements/entities/constants/constants.builder.js +21 -6
- package/lib/elements/entities/constants/constants.d.ts +4 -0
- package/lib/elements/entities/constants/constants.js +4 -0
- package/lib/elements/entities/constants/constants.schema.d.ts +16 -0
- package/lib/elements/entities/constants/constants.schema.js +16 -0
- package/lib/elements/entities/drive/drive_adapter.d.ts +15 -10
- package/lib/elements/entities/drive/drive_adapter.js +5 -2
- package/lib/elements/entities/drive/local.drive_adapter.d.ts +10 -4
- package/lib/elements/entities/drive/local.drive_adapter.js +23 -8
- package/lib/elements/entities/message/message.builder.d.ts +4 -0
- package/lib/elements/entities/message/message.builder.js +4 -0
- package/lib/elements/entities/message/message.d.ts +4 -0
- package/lib/elements/entities/message/message.js +4 -0
- package/lib/elements/entities/message/message.schema.d.ts +4 -0
- package/lib/elements/entities/message/message.schema.js +4 -0
- package/lib/elements/entities/message/message_parser.d.ts +4 -0
- package/lib/elements/entities/message/message_parser.js +4 -0
- package/lib/elements/entities/message/template/message_template.builder.d.ts +4 -0
- package/lib/elements/entities/message/template/message_template.builder.js +4 -0
- package/lib/elements/entities/message/template/message_template.schema.d.ts +9 -0
- package/lib/elements/entities/message/template/message_template.schema.js +25 -0
- package/lib/elements/entities/message/template/message_template_field.builder.d.ts +8 -0
- package/lib/elements/entities/message/template/message_template_field.builder.js +8 -0
- package/lib/elements/index.d.ts +1 -1
- package/lib/elements/index.js +1 -1
- package/lib/engine/apps/app.config.d.ts +3 -0
- package/lib/engine/apps/app.config.js +3 -0
- package/lib/engine/apps/app.d.ts +3 -0
- package/lib/engine/apps/app.js +4 -1
- package/lib/engine/apps/inline.app.d.ts +3 -0
- package/lib/engine/apps/inline.app.js +3 -0
- package/lib/engine/apps/monolyth/monolyth.app.d.ts +8 -0
- package/lib/engine/apps/monolyth/monolyth.app.js +8 -0
- package/lib/engine/auth/authn.d.ts +4 -0
- package/lib/engine/auth/authn.js +4 -0
- package/lib/engine/auth/zero.authn_provider.d.ts +4 -0
- package/lib/engine/auth/zero.authn_provider.js +4 -0
- package/lib/engine/cli/cli.d.ts +7 -1
- package/lib/engine/cli/cli.js +10 -1
- package/lib/engine/cli/cli_adapter.d.ts +11 -1
- package/lib/engine/cli/cli_adapter.js +10 -1
- package/lib/engine/cli/cli_input.d.ts +4 -0
- package/lib/engine/cli/cli_input.js +4 -0
- package/lib/engine/cli/ui.d.ts +14 -2
- package/lib/engine/cli/ui.js +10 -6
- package/lib/engine/daemon.d.ts +93 -6
- package/lib/engine/daemon.js +90 -7
- package/lib/engine/data/date.d.ts +4 -0
- package/lib/engine/data/date.js +4 -0
- package/lib/engine/data/datetime.d.ts +4 -0
- package/lib/engine/data/datetime.js +4 -0
- package/lib/engine/data/decimal.d.ts +4 -0
- package/lib/engine/data/decimal.js +4 -0
- package/lib/engine/data/file.d.ts +23 -23
- package/lib/engine/data/file.js +66 -29
- package/lib/engine/data/json.d.ts +4 -0
- package/lib/engine/data/json.js +4 -0
- package/lib/engine/data/tree.d.ts +4 -0
- package/lib/engine/data/tree.js +4 -0
- package/lib/engine/dependency.d.ts +63 -2
- package/lib/engine/dependency.js +52 -0
- package/lib/engine/module.d.ts +109 -9
- package/lib/engine/module.js +110 -25
- package/lib/engine/space.d.ts +163 -10
- package/lib/engine/space.js +184 -22
- package/lib/engine/transaction/nodes/bucket.trx_node.d.ts +12 -0
- package/lib/engine/transaction/nodes/bucket.trx_node.js +12 -0
- package/lib/engine/transaction/nodes/bucket_query.trx_node.d.ts +4 -0
- package/lib/engine/transaction/nodes/bucket_query.trx_node.js +4 -0
- package/lib/engine/transaction/nodes/job.trx_node.d.ts +4 -0
- package/lib/engine/transaction/nodes/job.trx_node.js +4 -0
- package/lib/engine/transaction/nodes/machine.trx_node.d.ts +4 -0
- package/lib/engine/transaction/nodes/machine.trx_node.js +4 -0
- package/lib/engine/transaction/nodes/queue.trx_node.d.ts +4 -0
- package/lib/engine/transaction/nodes/queue.trx_node.js +4 -0
- package/lib/engine/transaction/nodes/resource.trx_node.d.ts +4 -0
- package/lib/engine/transaction/nodes/resource.trx_node.js +4 -0
- package/lib/engine/transaction/trx.d.ts +8 -0
- package/lib/engine/transaction/trx.js +8 -0
- package/lib/engine/transaction/trx_engine.d.ts +4 -0
- package/lib/engine/transaction/trx_engine.js +4 -3
- package/lib/engine/transaction/trx_node.d.ts +4 -0
- package/lib/engine/transaction/trx_node.js +4 -0
- package/lib/engine/tree.d.ts +54 -2
- package/lib/engine/tree.js +54 -2
- package/lib/engine/util/mime.d.ts +4 -4
- package/lib/engine/util/mime.js +7 -9
- package/lib/schema.d.ts +1 -1
- package/package.json +1 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/lib/adapters/postgres/src/migrator/bucket.d.ts +0 -20
- package/lib/adapters/postgres/src/migrator/bucket.js +0 -184
- package/lib/adapters/postgres/src/migrator/migration.d.ts +0 -57
- package/lib/adapters/postgres/src/migrator/migration.js +0 -203
- package/lib/adapters/postgres/src/migrator/migrator.d.ts +0 -21
- package/lib/adapters/postgres/src/migrator/runner.d.ts +0 -71
- package/lib/adapters/postgres/src/migrator/runner.js +0 -271
- package/lib/elements/entities/bucket/adapters/memory.bucket_query copy.d.ts +0 -0
- package/lib/elements/entities/bucket/adapters/memory.bucket_query copy.js +0 -218
- package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.d.ts +0 -0
- package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.js +0 -47
- package/lib/engine/apps/monolyth/monolyth.cli.d.ts +0 -45
- package/lib/engine/apps/monolyth/monolyth.cli.js +0 -362
- package/lib/engine/util/cache.d.ts +0 -6
- package/lib/engine/util/cache.js +0 -20
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { $Bucket, $Space } from "../../../../elements";
|
|
2
|
-
import postgres from 'postgres';
|
|
3
|
-
import { AnyDaemon } from "../../../../engine/daemon";
|
|
4
|
-
import { BucketAdapterConfig } from "../../../../elements/entities/bucket/adapters/bucket_adapter";
|
|
5
|
-
import { Migration } from './migration';
|
|
6
|
-
export declare class BucketMigrator<S extends $Space, D extends AnyDaemon, ModuleName extends NoInfer<keyof S['modules']>> {
|
|
7
|
-
private daemon;
|
|
8
|
-
private sql;
|
|
9
|
-
private module;
|
|
10
|
-
private bucket;
|
|
11
|
-
private tableName;
|
|
12
|
-
protected schema: $Bucket;
|
|
13
|
-
protected config?: BucketAdapterConfig;
|
|
14
|
-
constructor(daemon: D, sql: postgres.Sql<any>, module: ModuleName, bucket: NoInfer<keyof S['modules'][ModuleName]['buckets']>, tableName: string);
|
|
15
|
-
generate(): Promise<Migration | undefined>;
|
|
16
|
-
private getCurrentSchema;
|
|
17
|
-
private generateFieldOptions;
|
|
18
|
-
private generateField;
|
|
19
|
-
private fieldType;
|
|
20
|
-
}
|
|
@@ -1,184 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BucketMigrator = void 0;
|
|
4
|
-
const daemon_1 = require("../../../../engine/daemon");
|
|
5
|
-
const migration_1 = require("./migration");
|
|
6
|
-
class BucketMigrator {
|
|
7
|
-
constructor(daemon, sql, module, bucket, tableName) {
|
|
8
|
-
this.daemon = daemon;
|
|
9
|
-
this.sql = sql;
|
|
10
|
-
this.module = module;
|
|
11
|
-
this.bucket = bucket;
|
|
12
|
-
this.tableName = tableName;
|
|
13
|
-
const daemonBucket = daemon_1.Daemon.getModule(daemon, module)
|
|
14
|
-
.buckets[bucket];
|
|
15
|
-
this.schema = daemonBucket.schema;
|
|
16
|
-
this.config = daemonBucket.adapter.config;
|
|
17
|
-
}
|
|
18
|
-
async generate() {
|
|
19
|
-
const current = await this.getCurrentSchema();
|
|
20
|
-
const options = this.generateFieldOptions(current);
|
|
21
|
-
if (!Object.keys(options).length) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
const type = current ? 'alter' : 'create';
|
|
25
|
-
return new migration_1.Migration(this.module, type, this.tableName, options);
|
|
26
|
-
}
|
|
27
|
-
async getCurrentSchema() {
|
|
28
|
-
const columns = await this.sql `
|
|
29
|
-
SELECT column_name, data_type, is_nullable
|
|
30
|
-
FROM information_schema.columns
|
|
31
|
-
WHERE table_name = ${this.tableName}`;
|
|
32
|
-
if (!columns.length) {
|
|
33
|
-
return;
|
|
34
|
-
}
|
|
35
|
-
return columns.map(col => ({
|
|
36
|
-
...col,
|
|
37
|
-
nullable: col.is_nullable === 'YES',
|
|
38
|
-
field_exists: false
|
|
39
|
-
}));
|
|
40
|
-
}
|
|
41
|
-
generateFieldOptions(current) {
|
|
42
|
-
let mappedCurrent;
|
|
43
|
-
if (current) {
|
|
44
|
-
mappedCurrent = {};
|
|
45
|
-
current.forEach(col => {
|
|
46
|
-
mappedCurrent[col.column_name] = col;
|
|
47
|
-
});
|
|
48
|
-
Object.keys(this.schema.model.fields)
|
|
49
|
-
.forEach(name => {
|
|
50
|
-
if (mappedCurrent[name]) {
|
|
51
|
-
mappedCurrent[name].field_exists = true;
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
const fields = {};
|
|
56
|
-
Object.entries(this.schema.model.fields)
|
|
57
|
-
.forEach(([name, field]) => {
|
|
58
|
-
const options = this.generateField(name, field, mappedCurrent);
|
|
59
|
-
if (options.length) {
|
|
60
|
-
fields[name] = options;
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
// Add meta fields when creating table
|
|
64
|
-
if (!current) {
|
|
65
|
-
const created_by = this.config?.meta.created_by || 'created_by';
|
|
66
|
-
fields[created_by] = [
|
|
67
|
-
new migration_1.MigrationField(undefined, created_by, {
|
|
68
|
-
create: { type: 'character(64)', nullable: true }
|
|
69
|
-
})
|
|
70
|
-
];
|
|
71
|
-
const created_at = this.config?.meta.created_at || 'created_at';
|
|
72
|
-
fields[created_at] = [
|
|
73
|
-
new migration_1.MigrationField(undefined, created_at, {
|
|
74
|
-
create: { type: 'timestamp without time zone' }
|
|
75
|
-
})
|
|
76
|
-
];
|
|
77
|
-
const updated_by = this.config?.meta.updated_by || 'updated_by';
|
|
78
|
-
fields[updated_by] = [
|
|
79
|
-
new migration_1.MigrationField(undefined, updated_by, {
|
|
80
|
-
create: { type: 'character(64)', nullable: true }
|
|
81
|
-
})
|
|
82
|
-
];
|
|
83
|
-
const updated_at = this.config?.meta.updated_at || 'updated_at';
|
|
84
|
-
fields[updated_at] = [
|
|
85
|
-
new migration_1.MigrationField(undefined, updated_at, {
|
|
86
|
-
create: { type: 'timestamp without time zone' }
|
|
87
|
-
})
|
|
88
|
-
];
|
|
89
|
-
}
|
|
90
|
-
return fields;
|
|
91
|
-
}
|
|
92
|
-
generateField(name, $, columns) {
|
|
93
|
-
const type = this.fieldType($);
|
|
94
|
-
const pk = $.name === 'id';
|
|
95
|
-
const nullable = !$.required;
|
|
96
|
-
// Table doesn't exist yet, only option is to create the field
|
|
97
|
-
if (!columns) {
|
|
98
|
-
return [new migration_1.MigrationField(undefined, $.name, {
|
|
99
|
-
create: { type, pk, nullable }
|
|
100
|
-
})];
|
|
101
|
-
}
|
|
102
|
-
// Table exists, evaluate options
|
|
103
|
-
else {
|
|
104
|
-
// Field exists, alter only what changed
|
|
105
|
-
const column = columns[$.name];
|
|
106
|
-
if (column) {
|
|
107
|
-
if ($.name === 'id') {
|
|
108
|
-
// Id can't be modified for now.
|
|
109
|
-
return [];
|
|
110
|
-
}
|
|
111
|
-
// TODO: check details such as
|
|
112
|
-
// - changes in decimal precision
|
|
113
|
-
// - changes in maxLength
|
|
114
|
-
// - changes in fk (!!!)
|
|
115
|
-
const _type = type.startsWith(column.data_type) ? undefined : column.data_type;
|
|
116
|
-
const _nullable = column.nullable !== nullable ? column.nullable : undefined;
|
|
117
|
-
if (_type !== undefined || _nullable !== undefined) {
|
|
118
|
-
return [new migration_1.MigrationField(undefined, $.name, {
|
|
119
|
-
alter: { type: _type, nullable: _nullable }
|
|
120
|
-
})];
|
|
121
|
-
}
|
|
122
|
-
return [];
|
|
123
|
-
}
|
|
124
|
-
// If field doesn't exists in columns, it might:
|
|
125
|
-
// - be a new field
|
|
126
|
-
// - be a field of the same type being renamed
|
|
127
|
-
else {
|
|
128
|
-
const options = [];
|
|
129
|
-
options.push(new migration_1.MigrationField(undefined, $.name, {
|
|
130
|
-
create: { type, pk, nullable }
|
|
131
|
-
}));
|
|
132
|
-
const deletedColumnsOfSameType = Object.values(columns)
|
|
133
|
-
.filter(col => !col.field_exists)
|
|
134
|
-
.filter(col => type.startsWith(col.data_type));
|
|
135
|
-
if (deletedColumnsOfSameType.length) {
|
|
136
|
-
// TODO: check details such as
|
|
137
|
-
// - changes in decimal precision
|
|
138
|
-
// - changes in maxLength
|
|
139
|
-
// - changes in fk (!!!)
|
|
140
|
-
deletedColumnsOfSameType.forEach(col => {
|
|
141
|
-
const _type = type.startsWith(col.data_type) ? undefined : col.data_type;
|
|
142
|
-
const _nullable = col.nullable !== nullable ? col.nullable : undefined;
|
|
143
|
-
if (_type !== undefined || _nullable !== undefined) {
|
|
144
|
-
options.push(new migration_1.MigrationField(undefined, $.name, {
|
|
145
|
-
alter: { name: col.column_name, type: _type, nullable: _nullable }
|
|
146
|
-
}));
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
return options;
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
fieldType($) {
|
|
155
|
-
if ($.name === 'id') {
|
|
156
|
-
if ($.type === 'string') {
|
|
157
|
-
return 'character(64) PRIMARY KEY';
|
|
158
|
-
}
|
|
159
|
-
return 'serial4 PRIMARY KEY';
|
|
160
|
-
}
|
|
161
|
-
let type = {
|
|
162
|
-
'boolean': () => 'boolean',
|
|
163
|
-
'date': () => 'date',
|
|
164
|
-
'datetime': () => 'timestamp without time zone',
|
|
165
|
-
'decimal': () => 'numeric(18,9)', // TODO: read from schema (not stored yet)
|
|
166
|
-
'dict': () => 'jsonb',
|
|
167
|
-
'enum': () => 'character(64)', // TODO: read from schema maxLength
|
|
168
|
-
'file': () => 'jsonb',
|
|
169
|
-
'float': () => 'double precision',
|
|
170
|
-
'int': () => 'integer',
|
|
171
|
-
'obj': () => 'jsonb',
|
|
172
|
-
'string': () => 'character varying', // TODO: char() if maxLength
|
|
173
|
-
'unknown': () => { throw new Error('An unknown field shouldn\'t be stored on SQL'); },
|
|
174
|
-
}[$.type]();
|
|
175
|
-
if ($.array) {
|
|
176
|
-
type += '[]';
|
|
177
|
-
}
|
|
178
|
-
if ($.required) {
|
|
179
|
-
type += ' NOT NULL';
|
|
180
|
-
}
|
|
181
|
-
return type;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
exports.BucketMigrator = BucketMigrator;
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
export type MigrationFieldOperation = {
|
|
2
|
-
create: {
|
|
3
|
-
type: string;
|
|
4
|
-
nullable?: boolean;
|
|
5
|
-
pk?: boolean;
|
|
6
|
-
fk?: string;
|
|
7
|
-
};
|
|
8
|
-
} | {
|
|
9
|
-
alter: {
|
|
10
|
-
name?: string;
|
|
11
|
-
type?: string;
|
|
12
|
-
nullable?: boolean;
|
|
13
|
-
fk?: string;
|
|
14
|
-
};
|
|
15
|
-
} | {
|
|
16
|
-
drop: {
|
|
17
|
-
cascade?: boolean;
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
export declare class MigrationField {
|
|
21
|
-
oldColumn: string | undefined;
|
|
22
|
-
newColumn: string;
|
|
23
|
-
operation: MigrationFieldOperation;
|
|
24
|
-
constructor(oldColumn: string | undefined, newColumn: string, operation: MigrationFieldOperation);
|
|
25
|
-
describe(): string;
|
|
26
|
-
sql(): string | undefined;
|
|
27
|
-
}
|
|
28
|
-
export declare class Migration {
|
|
29
|
-
module: string;
|
|
30
|
-
private type;
|
|
31
|
-
private tableName;
|
|
32
|
-
private options;
|
|
33
|
-
name: string;
|
|
34
|
-
private fields;
|
|
35
|
-
private needsReview;
|
|
36
|
-
constructor(module: string, type: 'create' | 'alter', tableName: string, options: Record<string, MigrationField[]>);
|
|
37
|
-
describe(): string;
|
|
38
|
-
sqlUp(): string;
|
|
39
|
-
sqlDown(): string;
|
|
40
|
-
save(dirpath?: string): void;
|
|
41
|
-
hash(): string;
|
|
42
|
-
/**
|
|
43
|
-
* Generates an encoded version of the migration, which is
|
|
44
|
-
* stored as a comment on the migration file. This can be
|
|
45
|
-
* used to recreate the `Migration` object in memory if needed.
|
|
46
|
-
* > **Attention** This encoded version is NOT used to run the migration.
|
|
47
|
-
* > The SQL is used to run the migration. This can be used
|
|
48
|
-
* > for analysis/display purposes only.
|
|
49
|
-
* > There's no guarantee that this will match the SQL if
|
|
50
|
-
* > the migration file is manually altered.
|
|
51
|
-
* @returns
|
|
52
|
-
*/
|
|
53
|
-
private encode;
|
|
54
|
-
private decode;
|
|
55
|
-
private fnUp;
|
|
56
|
-
private fnDown;
|
|
57
|
-
}
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.Migration = exports.MigrationField = void 0;
|
|
37
|
-
const string_1 = require("../../../../engine/util/string");
|
|
38
|
-
const path = __importStar(require("path"));
|
|
39
|
-
const fs = __importStar(require("fs"));
|
|
40
|
-
const crypto_1 = require("crypto");
|
|
41
|
-
const datetime_1 = require("../../../../engine/data/datetime");
|
|
42
|
-
class MigrationField {
|
|
43
|
-
constructor(oldColumn, newColumn, operation) {
|
|
44
|
-
this.oldColumn = oldColumn;
|
|
45
|
-
this.newColumn = newColumn;
|
|
46
|
-
this.operation = operation;
|
|
47
|
-
}
|
|
48
|
-
describe() {
|
|
49
|
-
const col_str = (0, string_1.colored)(this.newColumn, 'lightblue');
|
|
50
|
-
if ('create' in this.operation) {
|
|
51
|
-
const type_str = (0, string_1.colored)(this.operation.create.type, 'purple');
|
|
52
|
-
return `Create column ${col_str} as ${type_str}`;
|
|
53
|
-
}
|
|
54
|
-
else if ('alter' in this.operation) {
|
|
55
|
-
const op = this.operation.alter;
|
|
56
|
-
const name_str = op.name ? (0, string_1.colored)(op.name, 'lightcyan') : undefined;
|
|
57
|
-
const type_str = op.type ? (0, string_1.colored)(op.type, 'purple') : undefined;
|
|
58
|
-
const null_str = op.nullable ? (0, string_1.colored)('NOT NULL', 'purple') : undefined;
|
|
59
|
-
const props = (type_str ? `Alter column ${col_str} type to ${type_str};` : '') +
|
|
60
|
-
(null_str ? `Alter column ${col_str} nullable to ${null_str};` : '');
|
|
61
|
-
if (name_str) {
|
|
62
|
-
return `Rename column ${col_str} to ${name_str}.${props}`;
|
|
63
|
-
}
|
|
64
|
-
return props;
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
return (0, string_1.colored)('Unknown', 'lightred');
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
sql() {
|
|
71
|
-
if ('create' in this.operation) {
|
|
72
|
-
return `"${this.newColumn}" ${this.operation.create.type}`;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
exports.MigrationField = MigrationField;
|
|
77
|
-
class Migration {
|
|
78
|
-
constructor(module, type, tableName, options) {
|
|
79
|
-
this.module = module;
|
|
80
|
-
this.type = type;
|
|
81
|
-
this.tableName = tableName;
|
|
82
|
-
this.options = options;
|
|
83
|
-
this.name = `${datetime_1.NesoiDatetime.now().epoch}_${this.tableName}`;
|
|
84
|
-
this.needsReview = Object.values(options).some(opts => opts.length > 1);
|
|
85
|
-
this.fields = Object.values(options).map(opts => opts[0]);
|
|
86
|
-
}
|
|
87
|
-
describe() {
|
|
88
|
-
let str = '';
|
|
89
|
-
str += '┌\n';
|
|
90
|
-
str += `│ ${(0, string_1.colored)('module: ' + this.module, 'darkgray')}\n`;
|
|
91
|
-
str += `│ ${(0, string_1.colored)(this.name, 'lightcyan')}\n`;
|
|
92
|
-
str += `│ ${this.needsReview
|
|
93
|
-
? (0, string_1.colored)('⚠ More than one option for some fields. Requires review.', 'red')
|
|
94
|
-
: (0, string_1.colored)('✓ Only one option for each field.', 'lightgreen')}\n`;
|
|
95
|
-
str += '└\n\n';
|
|
96
|
-
if (this.type === 'create') {
|
|
97
|
-
str += `◆ Create table ${(0, string_1.colored)(this.tableName, 'lightblue')}\n`;
|
|
98
|
-
}
|
|
99
|
-
else if (this.type === 'alter') {
|
|
100
|
-
str += `◆ Alter table '${this.tableName}'\n`;
|
|
101
|
-
}
|
|
102
|
-
this.fields.forEach(field => {
|
|
103
|
-
str += `└ ${field.describe()}\n`;
|
|
104
|
-
});
|
|
105
|
-
str += '\n';
|
|
106
|
-
str += `${(0, string_1.colored)('▲ UP', 'lightgreen')}:\n`;
|
|
107
|
-
str += this.sqlUp();
|
|
108
|
-
str += '\n';
|
|
109
|
-
str += `${(0, string_1.colored)('▼ DOWN', 'yellow')}:\n`;
|
|
110
|
-
str += this.sqlDown();
|
|
111
|
-
return str;
|
|
112
|
-
}
|
|
113
|
-
sqlUp() {
|
|
114
|
-
if (this.type === 'create') {
|
|
115
|
-
return `CREATE TABLE ${this.tableName} (\n` +
|
|
116
|
-
this.fields.map(field => '\t' + field.sql()).join(',\n')
|
|
117
|
-
+ '\n)';
|
|
118
|
-
}
|
|
119
|
-
return '';
|
|
120
|
-
}
|
|
121
|
-
sqlDown() {
|
|
122
|
-
if (this.type === 'create') {
|
|
123
|
-
return `DROP TABLE ${this.tableName}`;
|
|
124
|
-
}
|
|
125
|
-
return '';
|
|
126
|
-
}
|
|
127
|
-
save(dirpath = './migrations') {
|
|
128
|
-
const filedir = path.join('modules', this.module, dirpath);
|
|
129
|
-
fs.mkdirSync(filedir, { recursive: true });
|
|
130
|
-
const filepath = path.join(filedir, this.name + '.ts');
|
|
131
|
-
const { encoded, hash } = this.encode();
|
|
132
|
-
let str = '';
|
|
133
|
-
str += 'import { Migrator } from \'nesoi/lib/adapters/postgres/src/migrator\';\n';
|
|
134
|
-
str += '\n';
|
|
135
|
-
str += '/**\n';
|
|
136
|
-
str += ` * ${this.name}\n`;
|
|
137
|
-
str += ` * $hash[${hash}]\n`;
|
|
138
|
-
str += ' *\n';
|
|
139
|
-
str += ` * $type[${this.type}]\n`;
|
|
140
|
-
str += ` * $table[${this.tableName}]\n`;
|
|
141
|
-
str += ` * $fields[${encoded}]\n`;
|
|
142
|
-
str += ' */\n';
|
|
143
|
-
str += '\n';
|
|
144
|
-
str += 'export default Migrator.migration({\n';
|
|
145
|
-
str += '\t' + this.fnUp().replace(/\n/g, '\n\t') + ',\n';
|
|
146
|
-
str += '\t' + this.fnDown().replace(/\n/g, '\n\t') + '\n';
|
|
147
|
-
str += '})';
|
|
148
|
-
fs.writeFileSync(filepath, str);
|
|
149
|
-
}
|
|
150
|
-
hash() {
|
|
151
|
-
const { hash } = this.encode();
|
|
152
|
-
return hash;
|
|
153
|
-
}
|
|
154
|
-
/**
|
|
155
|
-
* Generates an encoded version of the migration, which is
|
|
156
|
-
* stored as a comment on the migration file. This can be
|
|
157
|
-
* used to recreate the `Migration` object in memory if needed.
|
|
158
|
-
* > **Attention** This encoded version is NOT used to run the migration.
|
|
159
|
-
* > The SQL is used to run the migration. This can be used
|
|
160
|
-
* > for analysis/display purposes only.
|
|
161
|
-
* > There's no guarantee that this will match the SQL if
|
|
162
|
-
* > the migration file is manually altered.
|
|
163
|
-
* @returns
|
|
164
|
-
*/
|
|
165
|
-
encode() {
|
|
166
|
-
const v0 = () => {
|
|
167
|
-
const f_str = this.fields.map(field => {
|
|
168
|
-
const [op_key, op] = Object.entries(field.operation)[0];
|
|
169
|
-
const op_str = `[${op_key};${op.type || ''};${op.nullable ? 1 : 0};${op.pk ? 1 : 0};${op.fk || ''};${op.cascade || ''}]`;
|
|
170
|
-
return `${field.oldColumn || ''}:${field.newColumn}:${op_str}`;
|
|
171
|
-
}).join('\n');
|
|
172
|
-
const encoded = btoa(f_str);
|
|
173
|
-
const hash = (0, crypto_1.createHash)('md5').update(encoded).digest('hex');
|
|
174
|
-
return {
|
|
175
|
-
encoded,
|
|
176
|
-
hash: 'v0.' + hash
|
|
177
|
-
};
|
|
178
|
-
};
|
|
179
|
-
return v0();
|
|
180
|
-
}
|
|
181
|
-
decode() {
|
|
182
|
-
// TODO
|
|
183
|
-
}
|
|
184
|
-
fnUp() {
|
|
185
|
-
let str = '';
|
|
186
|
-
str += 'up: async ({ sql }) => {\n';
|
|
187
|
-
str += '\tawait sql`\n';
|
|
188
|
-
str += '\t\t' + this.sqlUp().replace(/\n/g, '\n\t\t') + '\n';
|
|
189
|
-
str += '\t`\n';
|
|
190
|
-
str += '}';
|
|
191
|
-
return str;
|
|
192
|
-
}
|
|
193
|
-
fnDown() {
|
|
194
|
-
let str = '';
|
|
195
|
-
str += 'down: async ({ sql }) => {\n';
|
|
196
|
-
str += '\tawait sql`\n';
|
|
197
|
-
str += '\t\t' + this.sqlDown().replace(/\n/g, '\n\t\t') + '\n';
|
|
198
|
-
str += '\t`\n';
|
|
199
|
-
str += '}';
|
|
200
|
-
return str;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
exports.Migration = Migration;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import postgres from 'postgres';
|
|
2
|
-
import { Migration } from './migration';
|
|
3
|
-
import { $Space } from "../../../../elements";
|
|
4
|
-
import { MigrationMethod, MigrationStatus } from './runner';
|
|
5
|
-
import { AnyDaemon } from "../../../../engine/daemon";
|
|
6
|
-
export type MigratorConfig = {
|
|
7
|
-
dirpath?: string;
|
|
8
|
-
postgres?: postgres.Options<any>;
|
|
9
|
-
};
|
|
10
|
-
export declare class Migrator<S extends $Space> {
|
|
11
|
-
protected daemon: AnyDaemon;
|
|
12
|
-
private sql;
|
|
13
|
-
dirpath: string;
|
|
14
|
-
static MIGRATION_TABLE_NAME: string;
|
|
15
|
-
status: MigrationStatus;
|
|
16
|
-
private constructor();
|
|
17
|
-
static prepare(daemon: AnyDaemon, sql: postgres.Sql<any>): Promise<Migrator<$Space>>;
|
|
18
|
-
generate(): Promise<Migration[]>;
|
|
19
|
-
generateForBucket<ModuleName extends keyof S['modules']>(module: ModuleName, bucket: keyof S['modules'][ModuleName]['buckets'], tableName: string): Promise<Migration | undefined>;
|
|
20
|
-
static migration<S extends $Space>(...$: ConstructorParameters<typeof MigrationMethod>): MigrationMethod;
|
|
21
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import postgres from 'postgres';
|
|
2
|
-
import { Migration } from './migration';
|
|
3
|
-
import { AnyDaemon } from "../../../../engine/daemon";
|
|
4
|
-
import { AnyTrxNode } from "../../../../engine/transaction/trx_node";
|
|
5
|
-
type MigrationFn = ($: {
|
|
6
|
-
sql: postgres.Sql<any>;
|
|
7
|
-
trx: AnyTrxNode;
|
|
8
|
-
}) => Promise<void>;
|
|
9
|
-
export type MigrationRow = {
|
|
10
|
-
id: number;
|
|
11
|
-
module: string;
|
|
12
|
-
name: string;
|
|
13
|
-
description?: string;
|
|
14
|
-
batch: number;
|
|
15
|
-
timestamp: string;
|
|
16
|
-
hash: string;
|
|
17
|
-
filehash: string;
|
|
18
|
-
};
|
|
19
|
-
export declare class MigrationMethod {
|
|
20
|
-
description?: string;
|
|
21
|
-
up: MigrationFn;
|
|
22
|
-
down: MigrationFn;
|
|
23
|
-
constructor($: {
|
|
24
|
-
description?: string;
|
|
25
|
-
up: MigrationFn;
|
|
26
|
-
down: MigrationFn;
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
export declare class MigrationStatus {
|
|
30
|
-
items: {
|
|
31
|
-
state: 'done' | 'pending' | 'lost';
|
|
32
|
-
id?: number;
|
|
33
|
-
module: string;
|
|
34
|
-
name: string;
|
|
35
|
-
description?: string;
|
|
36
|
-
batch?: number;
|
|
37
|
-
timestamp?: string;
|
|
38
|
-
hash: string;
|
|
39
|
-
filehash?: string;
|
|
40
|
-
method?: MigrationMethod;
|
|
41
|
-
}[];
|
|
42
|
-
batch: number;
|
|
43
|
-
constructor(fileMigrations: {
|
|
44
|
-
module: string;
|
|
45
|
-
name: string;
|
|
46
|
-
hash: string;
|
|
47
|
-
path: string;
|
|
48
|
-
method: MigrationMethod;
|
|
49
|
-
}[], dbMigrations: MigrationRow[]);
|
|
50
|
-
describe(): string;
|
|
51
|
-
}
|
|
52
|
-
export declare class MigrationRunner {
|
|
53
|
-
dirpath: string;
|
|
54
|
-
private migrations;
|
|
55
|
-
private constructor();
|
|
56
|
-
static scanFiles(daemon: AnyDaemon, dirpath: string): Promise<{
|
|
57
|
-
module: string;
|
|
58
|
-
name: string;
|
|
59
|
-
path: string;
|
|
60
|
-
hash: string;
|
|
61
|
-
method: MigrationMethod;
|
|
62
|
-
}[]>;
|
|
63
|
-
static scanDb(sql: postgres.Sql<any>): Promise<postgres.RowList<MigrationRow[]>>;
|
|
64
|
-
static status(daemon: AnyDaemon, sql: postgres.Sql<any>, dirpath: string): Promise<MigrationStatus>;
|
|
65
|
-
static up(daemon: AnyDaemon, sql: postgres.Sql<any>, mode?: 'one' | 'batch', dirpath?: string): Promise<void>;
|
|
66
|
-
static down(daemon: AnyDaemon, sql: postgres.Sql<any>, mode?: 'one' | 'batch', dirpath?: string): Promise<void>;
|
|
67
|
-
static injectUp(daemon: AnyDaemon, sql: postgres.Sql<any>, migration: Migration, dirpath?: string): Promise<void>;
|
|
68
|
-
private static migrateUp;
|
|
69
|
-
private static migrateDown;
|
|
70
|
-
}
|
|
71
|
-
export {};
|