Skip to content

Commit 239d877

Browse files
authored
Add the possibility to convert all column names to lower case. (#106)
In MySQL column names are case insensitive. PostgreSQL folds column names in queries to lower case, but considers column names with upper case letters in them as different, requiring the use of double quotes around the column name and using the proper case when refering to that column. That causes queries that worked on MySQL to fail on PostgreSQL. Converting all column names to lower case during migration avoids this issue.
1 parent 5fa0c9b commit 239d877

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

src/ExtraConfigProcessor.ts

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,21 +39,28 @@ export const getTableName = (conversion: Conversion, currentTableName: string, s
3939
* Retrieves current column's name.
4040
*/
4141
export const getColumnName = (conversion: Conversion, originalTableName: string, currentColumnName: string, shouldGetOriginal: boolean): string => {
42-
if (conversion._extraConfig !== null && 'tables' in conversion._extraConfig) {
43-
for (let i: number = 0; i < conversion._extraConfig.tables.length; ++i) {
44-
if (conversion._extraConfig.tables[i].name.original === originalTableName && 'columns' in conversion._extraConfig.tables[i]) {
45-
for (let columnsCount: number = 0; columnsCount < conversion._extraConfig.tables[i].columns.length; ++columnsCount) {
46-
if (conversion._extraConfig.tables[i].columns[columnsCount].original === currentColumnName) {
47-
return shouldGetOriginal
48-
? conversion._extraConfig.tables[i].columns[columnsCount].original
49-
: conversion._extraConfig.tables[i].columns[columnsCount].new;
42+
let retVal: string = currentColumnName;
43+
44+
if (conversion._extraConfig !== null) {
45+
if ('tables' in conversion._extraConfig) {
46+
for (let i: number = 0; i < conversion._extraConfig.tables.length; ++i) {
47+
if (conversion._extraConfig.tables[i].name.original === originalTableName && 'columns' in conversion._extraConfig.tables[i]) {
48+
for (let columnsCount: number = 0; columnsCount < conversion._extraConfig.tables[i].columns.length; ++columnsCount) {
49+
if (conversion._extraConfig.tables[i].columns[columnsCount].original === currentColumnName) {
50+
retVal = shouldGetOriginal
51+
? conversion._extraConfig.tables[i].columns[columnsCount].original
52+
: conversion._extraConfig.tables[i].columns[columnsCount].new;
53+
}
5054
}
5155
}
5256
}
5357
}
58+
if (conversion._extraConfig.lowerCaseAllColumnNames && !shouldGetOriginal) {
59+
retVal = retVal.toLowerCase();
60+
}
5461
}
5562

56-
return currentColumnName;
63+
return retVal;
5764
};
5865

5966
/**

0 commit comments

Comments
 (0)