node-server-engine 1.10.4 → 1.10.6
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/entities/Sequelize/Sequelize.js +35 -2
- package/dist/entities/Sequelize/Sequelize.js.map +1 -1
- package/dist/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.js +83 -51
- package/dist/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.js.map +1 -1
- package/package.json +1 -1
|
@@ -44,11 +44,26 @@ const sequelize = exports.sequelize = new Proxy(
|
|
|
44
44
|
function init() {
|
|
45
45
|
// Ignore if already initialized
|
|
46
46
|
if (sequelizeClient) return;
|
|
47
|
+
(0, _report.reportInfo)({
|
|
48
|
+
message: 'Initializing Sequelize client',
|
|
49
|
+
data: {
|
|
50
|
+
host: process.env.SQL_HOST,
|
|
51
|
+
database: process.env.SQL_DB,
|
|
52
|
+
user: process.env.SQL_USER,
|
|
53
|
+
port: process.env.SQL_PORT,
|
|
54
|
+
dialect: process.env.SQL_TYPE || 'postgres',
|
|
55
|
+
isUnixSocket: process.env.SQL_HOST?.startsWith('/')
|
|
56
|
+
}
|
|
57
|
+
});
|
|
47
58
|
exports.sequelizeClient = sequelizeClient = createSequelizeClient();
|
|
48
59
|
|
|
49
60
|
// In test environment, authentication happens automatically with SQLite
|
|
50
61
|
// For other environments, authenticate and log the result
|
|
51
62
|
if (process.env.NODE_ENV !== 'test') {
|
|
63
|
+
(0, _report.reportInfo)({
|
|
64
|
+
message: 'Starting database authentication'
|
|
65
|
+
});
|
|
66
|
+
|
|
52
67
|
// Add timeout to prevent hanging on connection issues
|
|
53
68
|
const authTimeout = setTimeout(() => {
|
|
54
69
|
(0, _report.reportError)({
|
|
@@ -56,7 +71,10 @@ function init() {
|
|
|
56
71
|
data: {
|
|
57
72
|
host: process.env.SQL_HOST,
|
|
58
73
|
database: process.env.SQL_DB,
|
|
59
|
-
user: process.env.SQL_USER
|
|
74
|
+
user: process.env.SQL_USER,
|
|
75
|
+
port: process.env.SQL_PORT,
|
|
76
|
+
dialect: process.env.SQL_TYPE || 'postgres',
|
|
77
|
+
isUnixSocket: process.env.SQL_HOST?.startsWith('/')
|
|
60
78
|
}
|
|
61
79
|
});
|
|
62
80
|
}, 30000);
|
|
@@ -76,9 +94,11 @@ function init() {
|
|
|
76
94
|
message: 'Failed to connect to database',
|
|
77
95
|
data: {
|
|
78
96
|
error: err.message,
|
|
97
|
+
stack: err.stack,
|
|
79
98
|
host: process.env.SQL_HOST,
|
|
80
99
|
database: process.env.SQL_DB,
|
|
81
|
-
user: process.env.SQL_USER
|
|
100
|
+
user: process.env.SQL_USER,
|
|
101
|
+
port: process.env.SQL_PORT
|
|
82
102
|
}
|
|
83
103
|
});
|
|
84
104
|
(0, _report.reportError)(err);
|
|
@@ -146,6 +166,19 @@ function createSequelizeClient() {
|
|
|
146
166
|
|
|
147
167
|
// Throw an error if there is no host initial
|
|
148
168
|
(0, _Sequelize2.validateSequelizeEnvironment)();
|
|
169
|
+
(0, _report.reportInfo)({
|
|
170
|
+
message: 'Creating Sequelize client with config',
|
|
171
|
+
data: {
|
|
172
|
+
database: process.env.SQL_DB,
|
|
173
|
+
username: process.env.SQL_USER,
|
|
174
|
+
host: process.env.SQL_HOST,
|
|
175
|
+
port: _Sequelize.default.port,
|
|
176
|
+
dialect: _Sequelize.default.dialect,
|
|
177
|
+
isUnixSocket: process.env.SQL_HOST?.startsWith('/'),
|
|
178
|
+
poolMax: _Sequelize.default.pool?.max,
|
|
179
|
+
poolMin: _Sequelize.default.pool?.min
|
|
180
|
+
}
|
|
181
|
+
});
|
|
149
182
|
return new _sequelizeTypescript.Sequelize(process.env.SQL_DB, process.env.SQL_USER, process.env.SQL_PASSWORD, _Sequelize.default);
|
|
150
183
|
}
|
|
151
184
|
//# sourceMappingURL=Sequelize.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sequelize.js","names":["_sequelizeTypescript","require","_Sequelize","_interopRequireDefault","_Sequelize2","_EngineError","_LifecycleController","_report","sequelizeClient","exports","sequelize","Proxy","get","target","property","init","shutdown","addModels","EngineError","message","createSequelizeClient","process","env","NODE_ENV","authTimeout","setTimeout","reportError","data","host","SQL_HOST","database","SQL_DB","user","SQL_USER","authenticate","then","clearTimeout","reportInfo","dialect","getDialect","catch","err","error","LifecycleController","register","close","console","undefined","models","addHook","result","convertToPlain","instance","toJSON","plain","Object","keys","forEach","key","Array","isArray","sync","Sequelize","storage","logging","validateSequelizeEnvironment","SQL_PASSWORD","dbConfig"],"sources":["../../../src/entities/Sequelize/Sequelize.ts"],"sourcesContent":["import { Sequelize, ModelCtor } from 'sequelize-typescript';\nimport dbConfig from './Sequelize.config';\nimport { Sequelize as SequelizeInterface } from './Sequelize.types';\nimport { validateSequelizeEnvironment } from './Sequelize.validate';\nimport { EngineError } from 'entities/EngineError';\nimport { LifecycleController } from 'entities/LifecycleController';\nimport { reportInfo, reportError } from 'utils/report';\n\nexport let sequelizeClient: undefined | Sequelize;\n\n/**\n * We use a proxy to extend the Sequelize behavior and allow initialization of the client only when needed while keeping the same interface\n */\nexport const sequelize = new Proxy<SequelizeInterface>(\n // Due to how we do the proxying, we are forced to ignore ts-errors, we could never create an object that respects the interface properly\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n {},\n {\n get: function (target, property): unknown {\n if (property === 'init') return init;\n if (property === 'shutdown') return shutdown;\n if (property === 'addModels') return addModels;\n // Create the sequelize client if it does not exist\n if (!sequelizeClient)\n throw new EngineError({\n message: 'Sequelize client was not initialized'\n });\n // Call the function on the sequelize client\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return sequelizeClient[property] as unknown;\n }\n }\n);\n\n/** On init create client and connect */\nexport function init(): void {\n // Ignore if already initialized\n if (sequelizeClient) return;\n sequelizeClient = createSequelizeClient();\n \n // In test environment, authentication happens automatically with SQLite\n // For other environments, authenticate and log the result\n if (process.env.NODE_ENV !== 'test') {\n // Add timeout to prevent hanging on connection issues\n const authTimeout = setTimeout(() => {\n reportError({\n message: 'Database authentication timeout after 30 seconds',\n data: {\n host: process.env.SQL_HOST,\n database: process.env.SQL_DB,\n user: process.env.SQL_USER\n }\n });\n }, 30000);\n\n void sequelizeClient\n .authenticate()\n .then(() => {\n clearTimeout(authTimeout);\n reportInfo({ \n message: 'Connected to database successfully',\n data: {\n host: process.env.SQL_HOST,\n database: process.env.SQL_DB,\n dialect: sequelizeClient?.getDialect()\n }\n });\n })\n .catch((err: Error) => {\n clearTimeout(authTimeout);\n reportError({\n message: 'Failed to connect to database',\n data: {\n error: err.message,\n host: process.env.SQL_HOST,\n database: process.env.SQL_DB,\n user: process.env.SQL_USER\n }\n });\n reportError(err);\n });\n }\n \n LifecycleController.register(sequelize);\n}\n\n/** On shutdown close connection and clear client */\nexport async function shutdown(): Promise<void> {\n if (sequelizeClient) {\n try {\n // For SQLite, just close the client (closing connection manager first causes SQLITE_MISUSE)\n // For other dialects, sequelize.close() handles everything properly\n await sequelizeClient.close();\n } catch (error) {\n // Ignore errors during shutdown\n if (process.env.NODE_ENV !== 'test') {\n console.error('Error closing sequelize client:', error);\n }\n }\n }\n sequelizeClient = undefined;\n}\n\nexport function addModels(models: Array<ModelCtor>): void {\n if (!sequelizeClient)\n throw new EngineError({\n message: 'Sequelize client was not initialized'\n });\n sequelizeClient.addModels(models);\n \n // Override toJSON behavior globally to ensure consistency between dev and prod\n // In dev (ts-node), property access works directly on instances\n // In prod (compiled), we need explicit serialization\n // This hook intercepts all afterFind results and converts them to plain objects\n sequelizeClient.addHook('afterFind', (result) => {\n if (!result) return;\n \n const convertToPlain = (instance: any) => {\n if (!instance || !instance.toJSON) return instance;\n const plain = instance.toJSON();\n // Copy the plain object properties back to the instance\n // This makes property access work without .toJSON() in compiled code\n Object.keys(plain).forEach(key => {\n instance[key] = plain[key];\n });\n };\n \n if (Array.isArray(result)) {\n result.forEach(convertToPlain);\n } else {\n convertToPlain(result);\n }\n });\n \n sequelizeClient.sync();\n}\n\n/** Create Sequelize client */\nexport function createSequelizeClient(): Sequelize {\n // Use in-memory SQLite for test environment to avoid real database connections\n if (process.env.NODE_ENV === 'test') {\n return new Sequelize({\n dialect: 'sqlite',\n storage: ':memory:',\n logging: false\n });\n }\n \n // Throw an error if there is no host initial\n validateSequelizeEnvironment();\n return new Sequelize(\n process.env.SQL_DB as string,\n process.env.SQL_USER as string,\n process.env.SQL_PASSWORD as string,\n dbConfig\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Sequelize.js","names":["_sequelizeTypescript","require","_Sequelize","_interopRequireDefault","_Sequelize2","_EngineError","_LifecycleController","_report","sequelizeClient","exports","sequelize","Proxy","get","target","property","init","shutdown","addModels","EngineError","message","reportInfo","data","host","process","env","SQL_HOST","database","SQL_DB","user","SQL_USER","port","SQL_PORT","dialect","SQL_TYPE","isUnixSocket","startsWith","createSequelizeClient","NODE_ENV","authTimeout","setTimeout","reportError","authenticate","then","clearTimeout","getDialect","catch","err","error","stack","LifecycleController","register","close","console","undefined","models","addHook","result","convertToPlain","instance","toJSON","plain","Object","keys","forEach","key","Array","isArray","sync","Sequelize","storage","logging","validateSequelizeEnvironment","username","dbConfig","poolMax","pool","max","poolMin","min","SQL_PASSWORD"],"sources":["../../../src/entities/Sequelize/Sequelize.ts"],"sourcesContent":["import { Sequelize, ModelCtor } from 'sequelize-typescript';\nimport dbConfig from './Sequelize.config';\nimport { Sequelize as SequelizeInterface } from './Sequelize.types';\nimport { validateSequelizeEnvironment } from './Sequelize.validate';\nimport { EngineError } from 'entities/EngineError';\nimport { LifecycleController } from 'entities/LifecycleController';\nimport { reportInfo, reportError } from 'utils/report';\n\nexport let sequelizeClient: undefined | Sequelize;\n\n/**\n * We use a proxy to extend the Sequelize behavior and allow initialization of the client only when needed while keeping the same interface\n */\nexport const sequelize = new Proxy<SequelizeInterface>(\n // Due to how we do the proxying, we are forced to ignore ts-errors, we could never create an object that respects the interface properly\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n {},\n {\n get: function (target, property): unknown {\n if (property === 'init') return init;\n if (property === 'shutdown') return shutdown;\n if (property === 'addModels') return addModels;\n // Create the sequelize client if it does not exist\n if (!sequelizeClient)\n throw new EngineError({\n message: 'Sequelize client was not initialized'\n });\n // Call the function on the sequelize client\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return sequelizeClient[property] as unknown;\n }\n }\n);\n\n/** On init create client and connect */\nexport function init(): void {\n // Ignore if already initialized\n if (sequelizeClient) return;\n \n reportInfo({\n message: 'Initializing Sequelize client',\n data: {\n host: process.env.SQL_HOST,\n database: process.env.SQL_DB,\n user: process.env.SQL_USER,\n port: process.env.SQL_PORT,\n dialect: process.env.SQL_TYPE || 'postgres',\n isUnixSocket: process.env.SQL_HOST?.startsWith('/')\n }\n });\n \n sequelizeClient = createSequelizeClient();\n \n // In test environment, authentication happens automatically with SQLite\n // For other environments, authenticate and log the result\n if (process.env.NODE_ENV !== 'test') {\n reportInfo({\n message: 'Starting database authentication'\n });\n\n // Add timeout to prevent hanging on connection issues\n const authTimeout = setTimeout(() => {\n reportError({\n message: 'Database authentication timeout after 30 seconds',\n data: {\n host: process.env.SQL_HOST,\n database: process.env.SQL_DB,\n user: process.env.SQL_USER,\n port: process.env.SQL_PORT,\n dialect: process.env.SQL_TYPE || 'postgres',\n isUnixSocket: process.env.SQL_HOST?.startsWith('/')\n }\n });\n }, 30000);\n\n void sequelizeClient\n .authenticate()\n .then(() => {\n clearTimeout(authTimeout);\n reportInfo({ \n message: 'Connected to database successfully',\n data: {\n host: process.env.SQL_HOST,\n database: process.env.SQL_DB,\n dialect: sequelizeClient?.getDialect()\n }\n });\n })\n .catch((err: Error) => {\n clearTimeout(authTimeout);\n reportError({\n message: 'Failed to connect to database',\n data: {\n error: err.message,\n stack: err.stack,\n host: process.env.SQL_HOST,\n database: process.env.SQL_DB,\n user: process.env.SQL_USER,\n port: process.env.SQL_PORT\n }\n });\n reportError(err);\n });\n }\n \n LifecycleController.register(sequelize);\n}\n\n/** On shutdown close connection and clear client */\nexport async function shutdown(): Promise<void> {\n if (sequelizeClient) {\n try {\n // For SQLite, just close the client (closing connection manager first causes SQLITE_MISUSE)\n // For other dialects, sequelize.close() handles everything properly\n await sequelizeClient.close();\n } catch (error) {\n // Ignore errors during shutdown\n if (process.env.NODE_ENV !== 'test') {\n console.error('Error closing sequelize client:', error);\n }\n }\n }\n sequelizeClient = undefined;\n}\n\nexport function addModels(models: Array<ModelCtor>): void {\n if (!sequelizeClient)\n throw new EngineError({\n message: 'Sequelize client was not initialized'\n });\n sequelizeClient.addModels(models);\n \n // Override toJSON behavior globally to ensure consistency between dev and prod\n // In dev (ts-node), property access works directly on instances\n // In prod (compiled), we need explicit serialization\n // This hook intercepts all afterFind results and converts them to plain objects\n sequelizeClient.addHook('afterFind', (result) => {\n if (!result) return;\n \n const convertToPlain = (instance: any) => {\n if (!instance || !instance.toJSON) return instance;\n const plain = instance.toJSON();\n // Copy the plain object properties back to the instance\n // This makes property access work without .toJSON() in compiled code\n Object.keys(plain).forEach(key => {\n instance[key] = plain[key];\n });\n };\n \n if (Array.isArray(result)) {\n result.forEach(convertToPlain);\n } else {\n convertToPlain(result);\n }\n });\n \n sequelizeClient.sync();\n}\n\n/** Create Sequelize client */\nexport function createSequelizeClient(): Sequelize {\n // Use in-memory SQLite for test environment to avoid real database connections\n if (process.env.NODE_ENV === 'test') {\n return new Sequelize({\n dialect: 'sqlite',\n storage: ':memory:',\n logging: false\n });\n }\n \n // Throw an error if there is no host initial\n validateSequelizeEnvironment();\n \n reportInfo({\n message: 'Creating Sequelize client with config',\n data: {\n database: process.env.SQL_DB,\n username: process.env.SQL_USER,\n host: process.env.SQL_HOST,\n port: dbConfig.port,\n dialect: dbConfig.dialect,\n isUnixSocket: process.env.SQL_HOST?.startsWith('/'),\n poolMax: dbConfig.pool?.max,\n poolMin: dbConfig.pool?.min\n }\n });\n \n return new Sequelize(\n process.env.SQL_DB as string,\n process.env.SQL_USER as string,\n process.env.SQL_PASSWORD as string,\n dbConfig\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -14,82 +14,114 @@ const namespace = 'engine:utils:dbMigration';
|
|
|
14
14
|
* Therefore, we use a more classic approach with this function and pure SQL queries
|
|
15
15
|
*/
|
|
16
16
|
async function migrateMetadataTable(sequelize) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
// We check if we have a custom sequelize_meta table yet
|
|
24
|
-
const tables = await sequelize.query(query, {
|
|
25
|
-
type: _sequelize.QueryTypes.SELECT
|
|
26
|
-
});
|
|
27
|
-
const hasCustomSequelizeMeta = process.env.SQL_TYPE === 'postgres' ? tables.some(table => table[0] === 'sequelize_meta') : tables.some(table => Object.values(table)[0] === 'sequelize_meta');
|
|
28
|
-
const hasLegacySequelizeMeta = process.env.SQL_TYPE === 'postgres' ? tables.some(table => table[0] === 'SequelizeMeta') : tables.some(table => Object.values(table)[0] === 'SequelizeMeta');
|
|
29
|
-
if (!hasCustomSequelizeMeta) {
|
|
17
|
+
try {
|
|
18
|
+
(0, _report.reportDebug)({
|
|
19
|
+
namespace,
|
|
20
|
+
message: 'Executing metadata migration routine'
|
|
21
|
+
});
|
|
22
|
+
const query = `SELECT table_name FROM information_schema.tables`;
|
|
30
23
|
(0, _report.reportDebug)({
|
|
31
24
|
namespace,
|
|
32
|
-
message: '
|
|
25
|
+
message: 'Checking for existing metadata tables',
|
|
26
|
+
data: {
|
|
27
|
+
sqlType: process.env.SQL_TYPE
|
|
28
|
+
}
|
|
33
29
|
});
|
|
34
30
|
|
|
35
|
-
//
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
31
|
+
// We check if we have a custom sequelize_meta table yet
|
|
32
|
+
const tables = await sequelize.query(query, {
|
|
33
|
+
type: _sequelize.QueryTypes.SELECT
|
|
34
|
+
});
|
|
35
|
+
const hasCustomSequelizeMeta = process.env.SQL_TYPE === 'postgres' ? tables.some(table => table[0] === 'sequelize_meta') : tables.some(table => Object.values(table)[0] === 'sequelize_meta');
|
|
36
|
+
const hasLegacySequelizeMeta = process.env.SQL_TYPE === 'postgres' ? tables.some(table => table[0] === 'SequelizeMeta') : tables.some(table => Object.values(table)[0] === 'SequelizeMeta');
|
|
37
|
+
if (!hasCustomSequelizeMeta) {
|
|
38
|
+
(0, _report.reportDebug)({
|
|
39
|
+
namespace,
|
|
40
|
+
message: 'No metadata table found, creating new one'
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
// Define SQL for creating the table based on the database type
|
|
44
|
+
let createTableQuery = '';
|
|
45
|
+
switch (process.env.SQL_TYPE) {
|
|
46
|
+
case 'mysql':
|
|
47
|
+
case 'postgres':
|
|
48
|
+
createTableQuery = `
|
|
41
49
|
CREATE TABLE sequelize_meta (
|
|
42
50
|
name VARCHAR(100) PRIMARY KEY,
|
|
43
51
|
version VARCHAR(25),
|
|
44
52
|
createdAt TIMESTAMP NOT NULL,
|
|
45
53
|
updatedAt TIMESTAMP NOT NULL
|
|
46
54
|
)`;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
55
|
+
break;
|
|
56
|
+
case 'mssql':
|
|
57
|
+
createTableQuery = `
|
|
50
58
|
CREATE TABLE sequelize_meta (
|
|
51
59
|
name VARCHAR(100) PRIMARY KEY,
|
|
52
60
|
version VARCHAR(25),
|
|
53
61
|
createdAt DATETIME NOT NULL,
|
|
54
62
|
updatedAt DATETIME NOT NULL
|
|
55
63
|
)`;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
64
|
+
break;
|
|
65
|
+
default:
|
|
66
|
+
throw new Error('Unsupported SQL type');
|
|
67
|
+
}
|
|
60
68
|
|
|
61
|
-
|
|
62
|
-
await sequelize.query(createTableQuery, {
|
|
63
|
-
type: _sequelize.QueryTypes.RAW
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
// Migrate the data from the old table to the new one if needed
|
|
67
|
-
if (hasLegacySequelizeMeta) {
|
|
69
|
+
// Create the new sequelize_meta table if it does not exist
|
|
68
70
|
(0, _report.reportDebug)({
|
|
69
71
|
namespace,
|
|
70
|
-
message: '
|
|
72
|
+
message: 'Creating sequelize_meta table',
|
|
73
|
+
data: {
|
|
74
|
+
sqlType: process.env.SQL_TYPE
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
await sequelize.query(createTableQuery, {
|
|
78
|
+
type: _sequelize.QueryTypes.RAW
|
|
71
79
|
});
|
|
72
|
-
|
|
73
|
-
|
|
80
|
+
(0, _report.reportDebug)({
|
|
81
|
+
namespace,
|
|
82
|
+
message: 'sequelize_meta table created successfully'
|
|
74
83
|
});
|
|
75
|
-
|
|
84
|
+
|
|
85
|
+
// Migrate the data from the old table to the new one if needed
|
|
86
|
+
if (hasLegacySequelizeMeta) {
|
|
87
|
+
(0, _report.reportDebug)({
|
|
88
|
+
namespace,
|
|
89
|
+
message: 'Legacy metadata table found, migrating data'
|
|
90
|
+
});
|
|
91
|
+
const migrations = await sequelize.query('SELECT name FROM SequelizeMeta ORDER BY name', {
|
|
92
|
+
type: _sequelize.QueryTypes.SELECT
|
|
93
|
+
});
|
|
94
|
+
const insertQuery = `
|
|
76
95
|
INSERT INTO sequelize_meta (name, version, createdAt, updatedAt) VALUES
|
|
77
96
|
${migrations.map(migration => {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
97
|
+
switch (process.env.SQL_TYPE) {
|
|
98
|
+
case 'mysql':
|
|
99
|
+
case 'postgres':
|
|
100
|
+
return `('${migration.name}', NULL, NOW(), NOW())`;
|
|
101
|
+
case 'mssql':
|
|
102
|
+
return `('${migration.name}', NULL, GETDATE(), GETDATE())`;
|
|
103
|
+
default:
|
|
104
|
+
throw new Error('Unsupported SQL type');
|
|
105
|
+
}
|
|
106
|
+
}).join(',')}
|
|
88
107
|
`;
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
108
|
+
await sequelize.query(insertQuery, {
|
|
109
|
+
type: _sequelize.QueryTypes.INSERT
|
|
110
|
+
});
|
|
111
|
+
}
|
|
92
112
|
}
|
|
113
|
+
} catch (error) {
|
|
114
|
+
(0, _report.reportError)({
|
|
115
|
+
namespace,
|
|
116
|
+
message: 'Error in metadata migration',
|
|
117
|
+
data: {
|
|
118
|
+
error: error instanceof Error ? error.message : String(error),
|
|
119
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
120
|
+
sqlType: process.env.SQL_TYPE,
|
|
121
|
+
sqlHost: process.env.SQL_HOST
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
throw error;
|
|
93
125
|
}
|
|
94
126
|
}
|
|
95
127
|
//# sourceMappingURL=migrateMetadataTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrateMetadataTable.js","names":["_sequelize","require","_report","namespace","migrateMetadataTable","sequelize","reportDebug","message","query","
|
|
1
|
+
{"version":3,"file":"migrateMetadataTable.js","names":["_sequelize","require","_report","namespace","migrateMetadataTable","sequelize","reportDebug","message","query","data","sqlType","process","env","SQL_TYPE","tables","type","QueryTypes","SELECT","hasCustomSequelizeMeta","some","table","Object","values","hasLegacySequelizeMeta","createTableQuery","Error","RAW","migrations","insertQuery","map","migration","name","join","INSERT","error","reportError","String","stack","undefined","sqlHost","SQL_HOST"],"sources":["../../../../src/utils/dbMigration/migrateMetadataTable/migrateMetadataTable.ts"],"sourcesContent":["import { Sequelize, QueryTypes } from 'sequelize';\nimport { SequelizeMeta } from 'db/models';\nimport { reportDebug, reportError } from 'utils/report';\n\nconst namespace = 'engine:utils:dbMigration';\n\n/**\n * Run migrations on the metadata table\n * The table containing the migrations metadata cannot be handled through migrations\n * Therefore, we use a more classic approach with this function and pure SQL queries\n */\nexport async function migrateMetadataTable(\n sequelize: Sequelize\n): Promise<void> {\n try {\n reportDebug({ namespace, message: 'Executing metadata migration routine' });\n\n const query = `SELECT table_name FROM information_schema.tables`;\n\n reportDebug({ \n namespace, \n message: 'Checking for existing metadata tables',\n data: { sqlType: process.env.SQL_TYPE }\n });\n\n // We check if we have a custom sequelize_meta table yet\n const tables = await sequelize.query<Array<string>>(query, {\n type: QueryTypes.SELECT\n });\n\n const hasCustomSequelizeMeta =\n process.env.SQL_TYPE === 'postgres'\n ? tables.some((table) => table[0] === 'sequelize_meta')\n : tables.some((table) => Object.values(table)[0] === 'sequelize_meta');\n const hasLegacySequelizeMeta =\n process.env.SQL_TYPE === 'postgres'\n ? tables.some((table) => table[0] === 'SequelizeMeta')\n : tables.some((table) => Object.values(table)[0] === 'SequelizeMeta');\n if (!hasCustomSequelizeMeta) {\n reportDebug({\n namespace,\n message: 'No metadata table found, creating new one'\n });\n\n // Define SQL for creating the table based on the database type\n let createTableQuery = '';\n\n switch (process.env.SQL_TYPE) {\n case 'mysql':\n case 'postgres':\n createTableQuery = `\n CREATE TABLE sequelize_meta (\n name VARCHAR(100) PRIMARY KEY,\n version VARCHAR(25),\n createdAt TIMESTAMP NOT NULL,\n updatedAt TIMESTAMP NOT NULL\n )`;\n break;\n case 'mssql':\n createTableQuery = `\n CREATE TABLE sequelize_meta (\n name VARCHAR(100) PRIMARY KEY,\n version VARCHAR(25),\n createdAt DATETIME NOT NULL,\n updatedAt DATETIME NOT NULL\n )`;\n break;\n default:\n throw new Error('Unsupported SQL type');\n }\n\n // Create the new sequelize_meta table if it does not exist\n reportDebug({ \n namespace, \n message: 'Creating sequelize_meta table',\n data: { sqlType: process.env.SQL_TYPE }\n });\n await sequelize.query(createTableQuery, { type: QueryTypes.RAW });\n reportDebug({ namespace, message: 'sequelize_meta table created successfully' });\n\n // Migrate the data from the old table to the new one if needed\n if (hasLegacySequelizeMeta) {\n reportDebug({\n namespace,\n message: 'Legacy metadata table found, migrating data'\n });\n\n const migrations = await sequelize.query<SequelizeMeta>(\n 'SELECT name FROM SequelizeMeta ORDER BY name',\n {\n type: QueryTypes.SELECT\n }\n );\n\n const insertQuery = `\n INSERT INTO sequelize_meta (name, version, createdAt, updatedAt) VALUES\n ${migrations\n .map((migration) => {\n switch (process.env.SQL_TYPE) {\n case 'mysql':\n case 'postgres':\n return `('${migration.name}', NULL, NOW(), NOW())`;\n case 'mssql':\n return `('${migration.name}', NULL, GETDATE(), GETDATE())`;\n default:\n throw new Error('Unsupported SQL type');\n }\n })\n .join(',')}\n `;\n\n await sequelize.query(insertQuery, { type: QueryTypes.INSERT });\n }\n }\n } catch (error) {\n reportError({\n namespace,\n message: 'Error in metadata migration',\n data: {\n error: error instanceof Error ? error.message : String(error),\n stack: error instanceof Error ? error.stack : undefined,\n sqlType: process.env.SQL_TYPE,\n sqlHost: process.env.SQL_HOST\n }\n });\n throw error;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-server-engine",
|
|
3
|
-
"version": "1.10.
|
|
3
|
+
"version": "1.10.6",
|
|
4
4
|
"description": "Framework used to develop backend services. This package ships with a lot of features to standardize the creation of services, letting you focus on the business logic.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|