rake-db 2.10.34 → 2.10.36
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/dist/index.d.ts +37 -136
- package/dist/index.js +57 -44
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +57 -44
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as orchid_core from 'orchid-core';
|
|
2
2
|
import { ColumnTypesBase, EmptyObject, RawSQLBase, MaybeArray } from 'orchid-core';
|
|
3
|
-
import * as pqb from 'pqb';
|
|
4
3
|
import { ColumnsShape, Db as Db$1, ColumnType, EnumColumn, raw, Adapter, DefaultColumnTypes, DbResult, TransactionAdapter, QueryLogObject, IndexColumnOptions, IndexOptions, ForeignKeyOptions, TextColumn, NoPrimaryKeyOption, TableData, SingleColumnIndexOptions, AdapterOptions, QueryLogOptions } from 'pqb';
|
|
5
4
|
|
|
6
5
|
type CreateTableResult<Table extends string, Shape extends ColumnsShape> = {
|
|
@@ -973,11 +972,12 @@ type RakeDbConfig<CT extends ColumnTypesBase = DefaultColumnTypes> = {
|
|
|
973
972
|
migrationsTable: string;
|
|
974
973
|
snakeCase: boolean;
|
|
975
974
|
language?: string;
|
|
976
|
-
commands: Record<string, (options: AdapterOptions[], config: RakeDbConfig<CT>, args: string[]) => Promise<void>>;
|
|
975
|
+
commands: Record<string, (options: AdapterOptions[], config: RakeDbConfig<CT>, args: string[]) => void | Promise<void>>;
|
|
977
976
|
noPrimaryKey?: NoPrimaryKeyOption;
|
|
978
977
|
baseTable?: BaseTable<CT>;
|
|
979
978
|
appCodeUpdater?: AppCodeUpdater;
|
|
980
979
|
useCodeUpdater?: boolean;
|
|
980
|
+
forceDefaultExports?: boolean;
|
|
981
981
|
import(path: string): Promise<unknown>;
|
|
982
982
|
beforeMigrate?(db: Db): Promise<void>;
|
|
983
983
|
afterMigrate?(db: Db): Promise<void>;
|
|
@@ -1038,142 +1038,43 @@ declare const rollback: <CT extends Record<string, orchid_core.AnyColumnTypeCrea
|
|
|
1038
1038
|
*/
|
|
1039
1039
|
declare const redo: <CT extends Record<string, orchid_core.AnyColumnTypeCreator>>(options: MaybeArray<AdapterOptions>, config: RakeDbConfig<CT>, args?: string[]) => Promise<void>;
|
|
1040
1040
|
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
};
|
|
1046
|
-
timestamp(): T;
|
|
1047
|
-
timestampsSnakeCase(): {
|
|
1048
|
-
createdAt: orchid_core.ColumnWithDefault<T, orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>>;
|
|
1049
|
-
updatedAt: orchid_core.ColumnWithDefault<T, orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>>;
|
|
1050
|
-
};
|
|
1051
|
-
}): {
|
|
1052
|
-
createdAt: orchid_core.ColumnWithDefault<T, orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>>;
|
|
1053
|
-
updatedAt: orchid_core.ColumnWithDefault<T, orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>>;
|
|
1054
|
-
};
|
|
1055
|
-
timestampsSnakeCase<T_1 extends orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>>(this: {
|
|
1056
|
-
name(name: string): {
|
|
1057
|
-
timestamp(): T_1;
|
|
1058
|
-
};
|
|
1059
|
-
timestamp(): T_1;
|
|
1060
|
-
}): {
|
|
1061
|
-
createdAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>>;
|
|
1062
|
-
updatedAt: orchid_core.ColumnWithDefault<T_1, orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>>;
|
|
1063
|
-
};
|
|
1064
|
-
timestampsNoTZ<T_2 extends orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>>(this: {
|
|
1065
|
-
name(name: string): {
|
|
1066
|
-
timestampNoTZ(): T_2;
|
|
1067
|
-
};
|
|
1068
|
-
timestampNoTZ(): T_2;
|
|
1069
|
-
timestampsNoTZSnakeCase(): {
|
|
1070
|
-
createdAt: orchid_core.ColumnWithDefault<T_2, orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>>;
|
|
1071
|
-
updatedAt: orchid_core.ColumnWithDefault<T_2, orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>>;
|
|
1072
|
-
};
|
|
1073
|
-
}): {
|
|
1074
|
-
createdAt: orchid_core.ColumnWithDefault<T_2, orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>>;
|
|
1075
|
-
updatedAt: orchid_core.ColumnWithDefault<T_2, orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>>;
|
|
1076
|
-
};
|
|
1077
|
-
timestampsNoTZSnakeCase<T_3 extends orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>>(this: {
|
|
1078
|
-
name(name: string): {
|
|
1079
|
-
timestampNoTZ(): T_3;
|
|
1080
|
-
};
|
|
1081
|
-
timestampNoTZ(): T_3;
|
|
1082
|
-
}): {
|
|
1083
|
-
createdAt: orchid_core.ColumnWithDefault<T_3, orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>>;
|
|
1084
|
-
updatedAt: orchid_core.ColumnWithDefault<T_3, orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>>;
|
|
1085
|
-
};
|
|
1086
|
-
name: typeof orchid_core.name;
|
|
1087
|
-
sql: {
|
|
1088
|
-
(sql: TemplateStringsArray, ...values: unknown[]): orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>;
|
|
1089
|
-
(sql: string): orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>;
|
|
1090
|
-
(values: Record<string, unknown>, sql: string): orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>;
|
|
1091
|
-
(values: Record<string, unknown>): (strings: TemplateStringsArray, ...values: unknown[]) => orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>;
|
|
1092
|
-
};
|
|
1093
|
-
smallint(): pqb.SmallIntColumn;
|
|
1094
|
-
integer(): pqb.IntegerColumn;
|
|
1095
|
-
bigint(): pqb.BigIntColumn;
|
|
1096
|
-
numeric<Precision extends number | undefined = undefined, Scale extends number | undefined = undefined>(precision?: Precision | undefined, scale?: Scale | undefined): pqb.DecimalColumn<Precision, Scale>;
|
|
1097
|
-
decimal<Precision_1 extends number | undefined = undefined, Scale_1 extends number | undefined = undefined>(precision?: Precision_1 | undefined, scale?: Scale_1 | undefined): pqb.DecimalColumn<Precision_1, Scale_1>;
|
|
1098
|
-
real(): pqb.RealColumn;
|
|
1099
|
-
doublePrecision(): pqb.DoublePrecisionColumn;
|
|
1100
|
-
identity(options?: pqb.TableData.Identity | undefined): orchid_core.ColumnWithDefault<pqb.IntegerColumn, orchid_core.Expression<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>>>;
|
|
1101
|
-
smallSerial(): pqb.SmallSerialColumn;
|
|
1102
|
-
serial(): pqb.SerialColumn;
|
|
1103
|
-
bigSerial(): pqb.BigSerialColumn;
|
|
1104
|
-
money(): pqb.MoneyColumn;
|
|
1105
|
-
varchar<Limit extends number | undefined = undefined>(limit?: Limit | undefined): pqb.VarCharColumn<Limit>;
|
|
1106
|
-
char<Limit_1 extends number | undefined = undefined>(limit?: Limit_1 | undefined): pqb.CharColumn<Limit_1>;
|
|
1107
|
-
text: (min: number, max: number) => pqb.TextColumn;
|
|
1108
|
-
string: (min: number, max: number) => pqb.TextColumn;
|
|
1109
|
-
citext(min: number, max: number): pqb.CitextColumn;
|
|
1110
|
-
bytea(): pqb.ByteaColumn;
|
|
1111
|
-
date(): pqb.DateColumn;
|
|
1112
|
-
timestampNoTZ<Precision_2 extends number>(precision?: Precision_2 | undefined): pqb.TimestampColumn<Precision_2>;
|
|
1113
|
-
timestamp<Precision_3 extends number | undefined = undefined>(precision?: Precision_3 | undefined): pqb.TimestampTZColumn<number>;
|
|
1114
|
-
time<Precision_4 extends number | undefined = undefined>(precision?: Precision_4 | undefined): pqb.TimeColumn<Precision_4>;
|
|
1115
|
-
interval<Fields extends string | undefined = undefined, Precision_5 extends number | undefined = undefined>(fields?: Fields | undefined, precision?: Precision_5 | undefined): pqb.IntervalColumn<Fields, Precision_5>;
|
|
1116
|
-
boolean(): pqb.BooleanColumn;
|
|
1117
|
-
enum<U extends string, T_4 extends [U, ...U[]]>(dataType: string, type: T_4): pqb.EnumColumn<U, T_4>;
|
|
1118
|
-
point(): pqb.PointColumn;
|
|
1119
|
-
line(): pqb.LineColumn;
|
|
1120
|
-
lseg(): pqb.LsegColumn;
|
|
1121
|
-
box(): pqb.BoxColumn;
|
|
1122
|
-
path(): pqb.PathColumn;
|
|
1123
|
-
polygon(): pqb.PolygonColumn;
|
|
1124
|
-
circle(): pqb.CircleColumn;
|
|
1125
|
-
cidr(): pqb.CidrColumn;
|
|
1126
|
-
inet(): pqb.InetColumn;
|
|
1127
|
-
macaddr(): pqb.MacAddrColumn;
|
|
1128
|
-
macaddr8(): pqb.MacAddr8Column;
|
|
1129
|
-
bit<Length extends number>(length: Length): pqb.BitColumn<Length>;
|
|
1130
|
-
bitVarying<Length_1 extends number | undefined = undefined>(length?: Length_1 | undefined): pqb.BitVaryingColumn<Length_1>;
|
|
1131
|
-
tsvector(): pqb.TsVectorColumn;
|
|
1132
|
-
tsquery(): pqb.TsQueryColumn;
|
|
1133
|
-
uuid(): pqb.UUIDColumn;
|
|
1134
|
-
xml(): pqb.XMLColumn;
|
|
1135
|
-
json<Type extends orchid_core.JSONType<unknown, {}> = orchid_core.JSONUnknown>(schemaOrFn?: Type | ((j: {
|
|
1136
|
-
unknown: () => orchid_core.JSONUnknown;
|
|
1137
|
-
boolean: () => orchid_core.JSONBoolean;
|
|
1138
|
-
null: () => orchid_core.JSONNull;
|
|
1139
|
-
number: () => orchid_core.JSONNumber;
|
|
1140
|
-
string: () => orchid_core.JSONString;
|
|
1141
|
-
array: <T_5 extends orchid_core.JSONType<unknown, {}>>(item: T_5) => orchid_core.JSONArray<T_5, "many">;
|
|
1142
|
-
object: <Shape extends orchid_core.JSONObjectShape>(shape: Shape) => orchid_core.JSONObject<Shape, "strip", orchid_core.JSONType<unknown, {}>>;
|
|
1143
|
-
literal: <T_6 extends orchid_core.JSONPrimitive>(value: T_6) => orchid_core.JSONLiteral<T_6>;
|
|
1144
|
-
discriminatedUnion: <Discriminator extends string, Types extends orchid_core.JSONDiscriminatedUnionArg<Discriminator>>(discriminator: Discriminator, types: Types) => orchid_core.JSONDiscriminatedUnion<Discriminator, Types>;
|
|
1145
|
-
enum: <U_1 extends string, T_7 extends [U_1, ...U_1[]]>(options: T_7) => orchid_core.JSONEnum<string, T_7>;
|
|
1146
|
-
intersection: <Left extends orchid_core.JSONType<unknown, {}>, Right extends orchid_core.JSONType<unknown, {}>>(left: Left, right: Right) => orchid_core.JSONIntersection<Left, Right>;
|
|
1147
|
-
lazy: <T_8 extends orchid_core.JSONType<unknown, {}>>(fn: () => T_8) => orchid_core.JSONLazy<T_8>;
|
|
1148
|
-
nativeEnum: <T_9 extends orchid_core.EnumLike>(type: T_9) => orchid_core.JSONNativeEnum<T_9>;
|
|
1149
|
-
record: <Key extends orchid_core.JSONNumber | orchid_core.JSONString, Value extends orchid_core.JSONType<unknown, {}>>(...args: [value: Value] | [key: Key, value: Value]) => orchid_core.JSONRecord<Key, Value>;
|
|
1150
|
-
tuple: <T_10 extends orchid_core.JSONTupleItems, Rest extends orchid_core.JSONType<unknown, {}> | undefined = undefined>(items: T_10, rest?: Rest | undefined) => orchid_core.JSONTuple<T_10, Rest>;
|
|
1151
|
-
union: <T_11 extends orchid_core.JSONUnionArgs>(...types: T_11) => orchid_core.JSONUnion<T_11>;
|
|
1152
|
-
}) => Type) | undefined): pqb.JSONColumn<Type>;
|
|
1153
|
-
jsonText(): pqb.JSONTextColumn;
|
|
1154
|
-
array<Item extends pqb.ColumnType<unknown, pqb.BaseOperators, unknown, unknown, unknown>>(item: Item): pqb.ArrayColumn<Item>;
|
|
1155
|
-
type(dataType: string): pqb.CustomTypeColumn;
|
|
1156
|
-
domain(dataType: string): pqb.DomainColumn;
|
|
1157
|
-
primaryKey(columns: string[], options?: {
|
|
1158
|
-
name?: string | undefined;
|
|
1159
|
-
} | undefined): {};
|
|
1160
|
-
index(columns: MaybeArray<string | pqb.IndexColumnOptions>, options?: pqb.IndexOptions): {};
|
|
1161
|
-
unique(columns: MaybeArray<string | pqb.IndexColumnOptions>, options?: pqb.IndexOptions | undefined): {};
|
|
1162
|
-
searchIndex(columns: MaybeArray<string | pqb.IndexColumnOptions>, options?: pqb.IndexOptions | undefined): {};
|
|
1163
|
-
constraint<Table extends string | (() => orchid_core.ForeignKeyTable), Columns extends Table extends () => orchid_core.ForeignKeyTable ? [orchid_core.ColumnNameOfTable<ReturnType<Table>>, ...orchid_core.ColumnNameOfTable<ReturnType<Table>>[]] : [string, ...string[]]>({ name, references, check, dropMode, }: {
|
|
1164
|
-
name?: string | undefined;
|
|
1165
|
-
references?: [columns: string[], fnOrTable: Table, foreignColumns: Columns, options?: pqb.ForeignKeyOptions | undefined] | undefined;
|
|
1166
|
-
check?: orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}> | undefined;
|
|
1167
|
-
dropMode?: pqb.DropMode | undefined;
|
|
1168
|
-
}): {};
|
|
1169
|
-
foreignKey<Table_1 extends string | (() => orchid_core.ForeignKeyTable), Columns_1 extends Table_1 extends () => orchid_core.ForeignKeyTable ? [orchid_core.ColumnNameOfTable<ReturnType<Table_1>>, ...orchid_core.ColumnNameOfTable<ReturnType<Table_1>>[]] : [string, ...string[]]>(columns: string[], fnOrTable: Table_1, foreignColumns: Columns_1, options?: (pqb.ForeignKeyOptions & {
|
|
1170
|
-
name?: string | undefined;
|
|
1171
|
-
dropMode?: pqb.DropMode | undefined;
|
|
1172
|
-
}) | undefined): {};
|
|
1173
|
-
check(check: orchid_core.RawSQLBase<orchid_core.ColumnTypeBase<unknown, orchid_core.BaseOperators, unknown, unknown, unknown, orchid_core.ColumnDataBase>, {}>): {};
|
|
1174
|
-
}>(options: MaybeArray<AdapterOptions>, partialConfig?: InputRakeDbConfig<CT>, args?: string[]) => ((fn: ChangeCallback<CT>) => void) & {
|
|
1041
|
+
/**
|
|
1042
|
+
* Type of {@link rakeDb} function
|
|
1043
|
+
*/
|
|
1044
|
+
type RakeDbFn = (<C extends ColumnTypesBase = DefaultColumnTypes>(options: MaybeArray<AdapterOptions>, partialConfig?: InputRakeDbConfig<C>, args?: string[]) => RakeDbChangeFn<C> & {
|
|
1175
1045
|
promise: Promise<void>;
|
|
1046
|
+
}) & {
|
|
1047
|
+
/**
|
|
1048
|
+
* Unlike the original `rakeDb` that executes immediately,
|
|
1049
|
+
* `rakeDb.lazy` returns the `run` function to be later called programmatically.
|
|
1050
|
+
*
|
|
1051
|
+
* @param options - {@link AdapterOptions} or an array of such options to migrate multiple dbs
|
|
1052
|
+
* @param config - {@link RakeDbConfig}
|
|
1053
|
+
* @returns `change` is to be used in migrations, `run` takes an array cli args to execute a command
|
|
1054
|
+
*/
|
|
1055
|
+
lazy: RakeDbLazyFn;
|
|
1056
|
+
};
|
|
1057
|
+
/**
|
|
1058
|
+
* Type of {@link rakeDb.lazy} function
|
|
1059
|
+
*/
|
|
1060
|
+
type RakeDbLazyFn = <C extends ColumnTypesBase = DefaultColumnTypes>(options: MaybeArray<AdapterOptions>, partialConfig?: InputRakeDbConfig<C>) => {
|
|
1061
|
+
change: RakeDbChangeFn<C>;
|
|
1062
|
+
run(args: string[]): Promise<void>;
|
|
1176
1063
|
};
|
|
1064
|
+
/**
|
|
1065
|
+
* Function to use in migrations to wrap database changes
|
|
1066
|
+
* Saves the given callback to an internal queue,
|
|
1067
|
+
* and also returns the callback in case you want to export it from migration.
|
|
1068
|
+
*/
|
|
1069
|
+
type RakeDbChangeFn<C extends ColumnTypesBase> = (fn: ChangeCallback<C>) => ChangeCallback<C>;
|
|
1070
|
+
/**
|
|
1071
|
+
* Function to configure and run `rakeDb`.
|
|
1072
|
+
*
|
|
1073
|
+
* @param options - {@link AdapterOptions} or an array of such options to migrate multiple dbs
|
|
1074
|
+
* @param config - {@link RakeDbConfig}
|
|
1075
|
+
* @param args - optionally provide an array of cli args. Default is `process.argv.slice(2)`.
|
|
1076
|
+
*/
|
|
1077
|
+
declare const rakeDb: RakeDbFn;
|
|
1177
1078
|
|
|
1178
1079
|
declare const saveMigratedVersion: <CT extends Record<string, orchid_core.AnyColumnTypeCreator>>(db: SilentQueries, version: string, config: RakeDbConfig<CT>) => Promise<void>;
|
|
1179
1080
|
declare const removeMigratedVersion: <CT extends Record<string, orchid_core.AnyColumnTypeCreator>>(db: SilentQueries, version: string, config: RakeDbConfig<CT>) => Promise<void>;
|
package/dist/index.js
CHANGED
|
@@ -238,7 +238,7 @@ function getMigrationsFromConfig(config, up) {
|
|
|
238
238
|
result.push({
|
|
239
239
|
path: path.resolve(basePath, key),
|
|
240
240
|
version: getVersion(path.basename(key)),
|
|
241
|
-
|
|
241
|
+
load: migrations[key]
|
|
242
242
|
});
|
|
243
243
|
}
|
|
244
244
|
if (!up)
|
|
@@ -261,7 +261,7 @@ async function getMigrationsFromFiles(config, up) {
|
|
|
261
261
|
return {
|
|
262
262
|
path: filePath,
|
|
263
263
|
version: getVersion(file),
|
|
264
|
-
async
|
|
264
|
+
async load() {
|
|
265
265
|
try {
|
|
266
266
|
await imp(filePath);
|
|
267
267
|
} catch (err) {
|
|
@@ -2302,8 +2302,14 @@ const processMigration = async (db, up, file, config, options, appCodeUpdaterCac
|
|
|
2302
2302
|
clearChanges();
|
|
2303
2303
|
let changes = changeCache[file.path];
|
|
2304
2304
|
if (!changes) {
|
|
2305
|
-
await file.
|
|
2306
|
-
|
|
2305
|
+
const module = await file.load();
|
|
2306
|
+
const exported = (module == null ? void 0 : module.default) && orchidCore.toArray(module.default);
|
|
2307
|
+
if (config.forceDefaultExports && !exported) {
|
|
2308
|
+
throw new RakeDbError(
|
|
2309
|
+
`Missing a default export in ${file.path} migration`
|
|
2310
|
+
);
|
|
2311
|
+
}
|
|
2312
|
+
changes = exported || getCurrentChanges();
|
|
2307
2313
|
changeCache[file.path] = changes;
|
|
2308
2314
|
}
|
|
2309
2315
|
const db2 = createMigrationInterface(tx, up, config);
|
|
@@ -3746,50 +3752,57 @@ const readdirRecursive = async (dirPath, cb) => {
|
|
|
3746
3752
|
|
|
3747
3753
|
const rakeDb = (options, partialConfig = {}, args = process.argv.slice(2)) => {
|
|
3748
3754
|
const config = processRakeDbConfig(partialConfig);
|
|
3749
|
-
const promise = runCommand(options, config, args)
|
|
3750
|
-
|
|
3751
|
-
(fn) => {
|
|
3752
|
-
pushChange(fn);
|
|
3753
|
-
},
|
|
3754
|
-
{
|
|
3755
|
-
promise
|
|
3756
|
-
}
|
|
3757
|
-
);
|
|
3758
|
-
};
|
|
3759
|
-
const runCommand = async (options, config, args = process.argv.slice(2)) => {
|
|
3760
|
-
var _a, _b, _c;
|
|
3761
|
-
const arg = (_a = args[0]) == null ? void 0 : _a.split(":")[0];
|
|
3762
|
-
try {
|
|
3763
|
-
if (arg === "create") {
|
|
3764
|
-
await createDb(options, config);
|
|
3765
|
-
} else if (arg === "drop") {
|
|
3766
|
-
await dropDb(options, config);
|
|
3767
|
-
} else if (arg === "reset") {
|
|
3768
|
-
await resetDb(options, config);
|
|
3769
|
-
} else if (arg === "up" || arg === "migrate") {
|
|
3770
|
-
await migrate(options, config, args.slice(1));
|
|
3771
|
-
} else if (arg === "down" || arg === "rollback") {
|
|
3772
|
-
await rollback(options, config, args.slice(1));
|
|
3773
|
-
} else if (arg === "redo") {
|
|
3774
|
-
await redo(options, config, args.slice(1));
|
|
3775
|
-
} else if (arg === "new") {
|
|
3776
|
-
await generate(config, args.slice(1));
|
|
3777
|
-
} else if (arg === "pull") {
|
|
3778
|
-
await pullDbStructure(orchidCore.toArray(options)[0], config);
|
|
3779
|
-
} else if (config.commands[arg]) {
|
|
3780
|
-
await config.commands[arg](orchidCore.toArray(options), config, args.slice(1));
|
|
3781
|
-
} else if (arg !== "rec" && arg !== "recurrent") {
|
|
3782
|
-
(_b = config.logger) == null ? void 0 : _b.log(help);
|
|
3783
|
-
}
|
|
3784
|
-
if (arg === "migrate" || arg === "rec" || arg === "recurrent" || arg === "redo") {
|
|
3785
|
-
await runRecurrentMigrations(options, config);
|
|
3786
|
-
}
|
|
3787
|
-
} catch (err) {
|
|
3755
|
+
const promise = runCommand(options, config, args).catch((err) => {
|
|
3756
|
+
var _a;
|
|
3788
3757
|
if (err instanceof RakeDbError) {
|
|
3789
|
-
(
|
|
3758
|
+
(_a = config.logger) == null ? void 0 : _a.error(err.message);
|
|
3790
3759
|
process.exit(1);
|
|
3791
3760
|
}
|
|
3792
3761
|
throw err;
|
|
3762
|
+
});
|
|
3763
|
+
return Object.assign(change, {
|
|
3764
|
+
promise
|
|
3765
|
+
});
|
|
3766
|
+
};
|
|
3767
|
+
rakeDb.lazy = (options, partialConfig = {}) => {
|
|
3768
|
+
const config = processRakeDbConfig(partialConfig);
|
|
3769
|
+
return {
|
|
3770
|
+
change,
|
|
3771
|
+
run(args) {
|
|
3772
|
+
return runCommand(options, config, args);
|
|
3773
|
+
}
|
|
3774
|
+
};
|
|
3775
|
+
};
|
|
3776
|
+
function change(fn) {
|
|
3777
|
+
pushChange(fn);
|
|
3778
|
+
return fn;
|
|
3779
|
+
}
|
|
3780
|
+
const runCommand = async (options, config, args = process.argv.slice(2)) => {
|
|
3781
|
+
var _a, _b;
|
|
3782
|
+
const arg = (_a = args[0]) == null ? void 0 : _a.split(":")[0];
|
|
3783
|
+
if (arg === "create") {
|
|
3784
|
+
await createDb(options, config);
|
|
3785
|
+
} else if (arg === "drop") {
|
|
3786
|
+
await dropDb(options, config);
|
|
3787
|
+
} else if (arg === "reset") {
|
|
3788
|
+
await resetDb(options, config);
|
|
3789
|
+
} else if (arg === "up" || arg === "migrate") {
|
|
3790
|
+
await migrate(options, config, args.slice(1));
|
|
3791
|
+
} else if (arg === "down" || arg === "rollback") {
|
|
3792
|
+
await rollback(options, config, args.slice(1));
|
|
3793
|
+
} else if (arg === "redo") {
|
|
3794
|
+
await redo(options, config, args.slice(1));
|
|
3795
|
+
} else if (arg === "new") {
|
|
3796
|
+
await generate(config, args.slice(1));
|
|
3797
|
+
} else if (arg === "pull") {
|
|
3798
|
+
await pullDbStructure(orchidCore.toArray(options)[0], config);
|
|
3799
|
+
} else if (config.commands[arg]) {
|
|
3800
|
+
await config.commands[arg](orchidCore.toArray(options), config, args.slice(1));
|
|
3801
|
+
} else if (arg !== "rec" && arg !== "recurrent") {
|
|
3802
|
+
(_b = config.logger) == null ? void 0 : _b.log(help);
|
|
3803
|
+
}
|
|
3804
|
+
if (arg === "migrate" || arg === "rec" || arg === "recurrent" || arg === "redo") {
|
|
3805
|
+
await runRecurrentMigrations(options, config);
|
|
3793
3806
|
}
|
|
3794
3807
|
};
|
|
3795
3808
|
const help = `Usage: rake-db [command] [arguments]
|