drizzle-kit 0.9.0 → 0.9.1
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/.eslintrc +3 -1
- package/config.yml +4 -0
- package/data/_prev/multi.ts +43 -0
- package/{examples → data/_prev}/tables/authOtpTable.ts +3 -3
- package/{examples → data/_prev}/tables/cityTable.ts +3 -3
- package/{examples → data/_prev}/tables/usersTable.ts +1 -1
- package/data/_prev/types/types.ts +11 -0
- package/data/v1/tables/authOtpTable.ts +18 -0
- package/data/v1/tables/deletedTable.ts +9 -0
- package/data/v1/tables/usersTable.ts +15 -0
- package/data/v1/types/types.ts +6 -0
- package/data/v2/tables/authOtpTable.ts +22 -0
- package/data/v2/tables/cityTable.ts +10 -0
- package/data/v2/tables/usersTable.ts +19 -0
- package/data/v2/types/types.ts +11 -0
- package/data/v3/tables/authOtpTable.ts +21 -0
- package/data/v3/tables/cityTable.ts +17 -0
- package/data/v3/tables/usersTable.ts +18 -0
- package/data/v3/types/types.ts +11 -0
- package/factory.ts +224 -0
- package/fstest.ts +50 -0
- package/index.ts +16 -0
- package/package.json +34 -13
- package/readme.md +9 -0
- package/serializer.ts +139 -0
- package/src/cli/commands/migration/index.tsx +1 -1
- package/src/cli/commands/migration/migrate/index.tsx +155 -17
- package/src/cli/components-api/ComponentsList.tsx +20 -0
- package/src/cli/components-api/CreateApp.tsx +19 -0
- package/src/cli/components-api/components/PromptColumnsConflicts.tsx +171 -0
- package/src/cli/components-api/components/PromptTablesConflicts.tsx +180 -0
- package/src/cli/components-api/components/Task.tsx +85 -0
- package/src/cli/components-api/index.tsx +76 -0
- package/src/cli/enq.ts +41 -0
- package/src/cli/machines/resolveColumnsMachine.ts +179 -0
- package/src/cli/machines/resolveTablesMachine.ts +169 -0
- package/src/cli/utils/formatDataForTable.ts +36 -0
- package/src/cli/utils/valuesForPrompts.ts +35 -0
- package/src/diff.ts +272 -0
- package/src/differ.js +135 -0
- package/src/jsonStatements.js +176 -0
- package/src/migrationPreparator.ts +47 -0
- package/src/serilizer/factory.ts +340 -0
- package/src/serilizer/index.ts +25 -0
- package/src/simulator.ts +85 -0
- package/src/sqlgenerator.js +373 -0
- package/test-build.js +26 -0
- package/test.ts +57 -0
- package/testFactory.js +3 -0
- package/testFactory.ts +26 -0
- package/tsconfig.json +1 -1
- package/webpack.config.js +42 -45
- package/result.json +0 -207
- package/src/cli/commands/migration/migrate/components/Progress/index.tsx +0 -98
- package/src/cli/commands/migration/migrate/components/Prompts/index.tsx +0 -37
- package/src/cli/commands/migration/migrate/components/index.tsx +0 -132
- package/src/common/components/Prompt.tsx +0 -106
- package/src/common/components/SelectTable.tsx +0 -134
- package/src/index.ts +0 -10
- package/src/serializer.ts +0 -135
package/src/index.ts
DELETED
package/src/serializer.ts
DELETED
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
/* eslint-disable no-restricted-syntax */
|
|
2
|
-
/* eslint-disable new-cap */
|
|
3
|
-
/* eslint-disable global-require */
|
|
4
|
-
/* eslint-disable import/no-dynamic-require */
|
|
5
|
-
import { AbstractTable, Column, DB } from '@lambda-team/ltdl';
|
|
6
|
-
import ColumnType from '@lambda-team/ltdl/columns/types/columnType';
|
|
7
|
-
import PgEnum from '@lambda-team/ltdl/columns/types/pgEnum';
|
|
8
|
-
import TableIndex from '@lambda-team/ltdl/indexes/tableIndex';
|
|
9
|
-
import * as fs from 'fs';
|
|
10
|
-
import { Pool } from 'pg';
|
|
11
|
-
|
|
12
|
-
interface ColumnAsObject{
|
|
13
|
-
[name: string]:{
|
|
14
|
-
name?: string
|
|
15
|
-
type?: string
|
|
16
|
-
primaryKey?: boolean
|
|
17
|
-
autoincrement?: boolean
|
|
18
|
-
unique?: boolean
|
|
19
|
-
references?: {
|
|
20
|
-
table: string,
|
|
21
|
-
column: string
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
interface IndexColumnAsObject{
|
|
27
|
-
[name: string]: {
|
|
28
|
-
name?: string
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
interface IndexAsObject{
|
|
33
|
-
[name: string]:{
|
|
34
|
-
name?: string
|
|
35
|
-
columns?: ColumnAsObject
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
interface TableAsObject {
|
|
40
|
-
[name: string]: {
|
|
41
|
-
name: string,
|
|
42
|
-
columns: ColumnAsObject,
|
|
43
|
-
indexes: {
|
|
44
|
-
[name: string]:{
|
|
45
|
-
name?: string
|
|
46
|
-
type?: string
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
interface EnumAsObject {
|
|
53
|
-
[name: string]: {
|
|
54
|
-
name: string,
|
|
55
|
-
values: string[]
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export default class MigrationSerializer {
|
|
60
|
-
public generate = () => {
|
|
61
|
-
const result: TableAsObject = {};
|
|
62
|
-
const filenames = fs.readdirSync('./examples/tables/');
|
|
63
|
-
|
|
64
|
-
const enumToReturn: EnumAsObject = {};
|
|
65
|
-
|
|
66
|
-
filenames.forEach((filename) => {
|
|
67
|
-
const table = this.fromFile(`../examples/tables/${filename.split('.')[0]}`);
|
|
68
|
-
const tableValues = Object.entries(table);
|
|
69
|
-
|
|
70
|
-
const columnToReturn: ColumnAsObject = {};
|
|
71
|
-
const indexToReturn: IndexAsObject = {};
|
|
72
|
-
|
|
73
|
-
for (const properties of tableValues) {
|
|
74
|
-
const key = properties[0];
|
|
75
|
-
const value = properties[1];
|
|
76
|
-
if (value instanceof TableIndex) {
|
|
77
|
-
const columns = value.getColumns();
|
|
78
|
-
const name = value.indexName();
|
|
79
|
-
|
|
80
|
-
const indexColumnToReturn: IndexColumnAsObject = {};
|
|
81
|
-
|
|
82
|
-
for (const column of columns) {
|
|
83
|
-
const columnName = column.getColumnName();
|
|
84
|
-
indexColumnToReturn[columnName] = {
|
|
85
|
-
name: columnName,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
indexToReturn[name] = {
|
|
90
|
-
name,
|
|
91
|
-
columns: indexColumnToReturn,
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
if (value instanceof Column) {
|
|
95
|
-
const columnType = value.getColumnType();
|
|
96
|
-
if (columnType instanceof PgEnum) {
|
|
97
|
-
const enumValues = Object.values(columnType.codeType) as string[];
|
|
98
|
-
enumToReturn[columnType.getDbName()] = {
|
|
99
|
-
name: columnType.getDbName(),
|
|
100
|
-
values: enumValues,
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
columnToReturn[key] = {
|
|
104
|
-
name: value.getColumnName(),
|
|
105
|
-
type: (value.getColumnType() as ColumnType).getDbName(),
|
|
106
|
-
primaryKey: !!value.primaryKeyName,
|
|
107
|
-
autoincrement: value.isAutoIncrement(),
|
|
108
|
-
unique: !!value.uniqueKeyName,
|
|
109
|
-
};
|
|
110
|
-
const referenced = value.getReferenced();
|
|
111
|
-
if (referenced){
|
|
112
|
-
columnToReturn[key].references = {
|
|
113
|
-
table: referenced.getParentName(),
|
|
114
|
-
column: referenced.getColumnName()
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
result[table.tableName()] = {
|
|
121
|
-
name: table.tableName(),
|
|
122
|
-
columns: columnToReturn,
|
|
123
|
-
indexes: indexToReturn,
|
|
124
|
-
};
|
|
125
|
-
});
|
|
126
|
-
|
|
127
|
-
return { version: '1', tables: result, enums: enumToReturn };
|
|
128
|
-
};
|
|
129
|
-
|
|
130
|
-
private fromFile(filepath: string): AbstractTable<any> {
|
|
131
|
-
const db = new DB(new Pool());
|
|
132
|
-
const importedTable = require(filepath);
|
|
133
|
-
return (new importedTable.default(db) as AbstractTable<any>);
|
|
134
|
-
}
|
|
135
|
-
}
|