1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-28 00:06:53 +01:00
unleash.unleash/src/migrations/20230510113903-fix-api-token-username-migration.js
David Leek 534e1f1378
chore: add another migration that remigrates the proper way (#3719)
## About the changes
<!-- Describe the changes introduced. What are they and why are they
being introduced? Feel free to also add screenshots or steps to view the
changes if they're visual. -->

Adds a migration that renames `token_name` back to `username`, then adds
a new optional column named `token_name`

## Discussion points
<!-- Anything about the PR you'd like to discuss before it gets merged?
Got any questions or doubts? -->

I've added fallbacks for resolving username/tokenname on insert and on
making rows from results.
But this adds another column renaming, which is worth discussing
properly
2023-05-11 15:33:04 +02:00

37 lines
1.1 KiB
JavaScript

'use strict';
exports.up = function (db, callback) {
db.runSql(
`
SELECT * FROM migrations WHERE name = '/20230426110026-rename-api-token-username-field';
`,
(err, results) => {
if (results.rows.length > 0) {
db.runSql(
`
ALTER TABLE api_tokens RENAME COLUMN token_name TO username;
ALTER TABLE api_tokens ADD COLUMN "token_name" text;
UPDATE api_tokens SET token_name = username;
DELETE FROM migrations WHERE name = '/20230426110026-rename-api-token-username-field';
`,
);
} else {
db.runSql(
`
ALTER TABLE api_tokens ADD COLUMN "token_name" text;
UPDATE api_tokens SET token_name = username;
`,
);
}
callback();
},
);
};
exports.down = function (db, callback) {
db.runSql(
`ALTER TABLE api_tokens DROP COLUMN IF EXISTS "token_name";`,
callback,
);
};