Skip to content

Commit

Permalink
WIP migrate to latest sequelize-v7
Browse files Browse the repository at this point in the history
  • Loading branch information
Hornwitser committed Oct 30, 2024
1 parent c181489 commit 1c9ef09
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 7 deletions.
70 changes: 70 additions & 0 deletions dev/ci-db-configs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,73 @@ export const CiDbConfigs = {
minifyAliases: Boolean(env.SEQ_PG_MINIFY_ALIASES),
},
};

export const CiDbConfigsV7 = {
mssql: {
server: env.SEQ_MSSQL_HOST || env.SEQ_HOST || 'localhost',
authentication: {
type: 'default',
options: {
username: env.SEQ_MSSQL_USER || env.SEQ_USER || 'SA',
password: env.SEQ_MSSQL_PW || env.SEQ_PW || 'Password12!',
},
},
port: env.SEQ_MSSQL_PORT || env.SEQ_PORT || 22_019,
database: env.SEQ_MSSQL_DB || env.SEQ_DB || 'sequelize_test',
encrypt: false,
requestTimeout: 25_000,
pool: {
max: Number(env.SEQ_MSSQL_POOL_MAX || env.SEQ_POOL_MAX || 5),
idle: Number(env.SEQ_MSSQL_POOL_IDLE || env.SEQ_POOL_IDLE || 3000),
},
},

mysql: {
database: env.SEQ_MYSQL_DB || env.SEQ_DB || 'sequelize_test',
user: env.SEQ_MYSQL_USER || env.SEQ_USER || 'sequelize_test',
password: env.SEQ_MYSQL_PW || env.SEQ_PW || 'sequelize_test',
host: env.MYSQL_PORT_3306_TCP_ADDR || env.SEQ_MYSQL_HOST || env.SEQ_HOST || '127.0.0.1',
port: env.MYSQL_PORT_3306_TCP_PORT || env.SEQ_MYSQL_PORT || env.SEQ_PORT || 20_057,
pool: {
max: Number(env.SEQ_MYSQL_POOL_MAX || env.SEQ_POOL_MAX || 5),
idle: Number(env.SEQ_MYSQL_POOL_IDLE || env.SEQ_POOL_IDLE || 3000),
},
},

snowflake: {
username: env.SEQ_SNOWFLAKE_USER || env.SEQ_USER || 'root',
password: env.SEQ_SNOWFLAKE_PW || env.SEQ_PW || '',
database: env.SEQ_SNOWFLAKE_DB || env.SEQ_DB || 'sequelize_test',
account: env.SEQ_SNOWFLAKE_ACCOUNT || env.SEQ_ACCOUNT || 'sequelize_test',
role: env.SEQ_SNOWFLAKE_ROLE || env.SEQ_ROLE || 'role',
warehouse: env.SEQ_SNOWFLAKE_WH || env.SEQ_WH || 'warehouse',
schema: env.SEQ_SNOWFLAKE_SCHEMA || env.SEQ_SCHEMA || '',
},

mariadb: {
database: env.SEQ_MARIADB_DB || env.SEQ_DB || 'sequelize_test',
user: env.SEQ_MARIADB_USER || env.SEQ_USER || 'sequelize_test',
password: env.SEQ_MARIADB_PW || env.SEQ_PW || 'sequelize_test',
host: env.MARIADB_PORT_3306_TCP_ADDR || env.SEQ_MARIADB_HOST || env.SEQ_HOST || '127.0.0.1',
port: env.MARIADB_PORT_3306_TCP_PORT || env.SEQ_MARIADB_PORT || env.SEQ_PORT || 21_103,
pool: {
max: Number(env.SEQ_MARIADB_POOL_MAX || env.SEQ_POOL_MAX || 5),
idle: Number(env.SEQ_MARIADB_POOL_IDLE || env.SEQ_POOL_IDLE || 3000),
},
},

sqlite: {},

postgres: {
database: env.SEQ_PG_DB || env.SEQ_DB || 'sequelize_test',
user: env.SEQ_PG_USER || env.SEQ_USER || 'sequelize_test',
password: env.SEQ_PG_PW || env.SEQ_PW || 'sequelize_test',
host: env.POSTGRES_PORT_5432_TCP_ADDR || env.SEQ_PG_HOST || env.SEQ_HOST || '127.0.0.1',
port: env.POSTGRES_PORT_5432_TCP_PORT || env.SEQ_PG_PORT || env.SEQ_PORT || 23_010,
pool: {
max: Number(env.SEQ_PG_POOL_MAX || env.SEQ_POOL_MAX || 5),
idle: Number(env.SEQ_PG_POOL_IDLE || env.SEQ_POOL_IDLE || 3000),
},
minifyAliases: Boolean(env.SEQ_PG_MINIFY_ALIASES),
},
};
2 changes: 1 addition & 1 deletion dev/create-sequelize-instance.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ export function createSequelize7Instance(options?: Omit<Sequelize7Options<Abstra
// not compatible with node 10
const { Sequelize: Sequelize7Constructor } = require('@sequelize/core');
// @ts-expect-error -- wrapOptions expect sequelize 6.
return new Sequelize7Constructor(wrapOptions(options));
return new Sequelize7Constructor(wrapOptions(options, true));
}
9 changes: 3 additions & 6 deletions dev/wrap-options.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import defaults from 'lodash/defaults.js';
import { CiDbConfigs } from './ci-db-configs';
import { CiDbConfigs, CiDbConfigsV7 } from './ci-db-configs';
import { log } from './logging';
import type { Dialect, Options } from 'sequelize';

export function wrapOptions(options: Options = {}) {
export function wrapOptions(options: Options = {}, v7 = false) {
if (!process.env.DIALECT) {
throw new Error('Dialect is not defined! Aborting.');
}
Expand All @@ -14,7 +14,7 @@ export function wrapOptions(options: Options = {}) {
// this fails in the CI due to mismatch between Sequelize 6 & 7. Should be resolved once we drop Sequelize 6.
// eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error
// @ts-ignore
const config = CiDbConfigs[dialect];
const config = v7 ? CiDbConfigsV7[dialect] : CiDbConfigs[dialect];

options.dialect = dialect;
if (isPostgresNative) {
Expand All @@ -26,8 +26,5 @@ export function wrapOptions(options: Options = {}) {
...config,
});

// @ts-expect-error
options.__isOptionsObject__ = true;

return options;
}

0 comments on commit 1c9ef09

Please sign in to comment.