mirror of
https://github.com/Unleash/unleash.git
synced 2025-01-31 00:16:47 +01:00
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
This commit is contained in:
parent
9943179393
commit
534e1f1378
@ -39,7 +39,7 @@ const tokenRowReducer = (acc, tokenRow) => {
|
||||
if (!acc[tokenRow.secret]) {
|
||||
acc[tokenRow.secret] = {
|
||||
secret: token.secret,
|
||||
tokenName: token.token_name,
|
||||
tokenName: token.token_name ? token.token_name : token.username,
|
||||
type: token.type.toLowerCase(),
|
||||
project: ALL,
|
||||
projects: [ALL],
|
||||
@ -48,7 +48,7 @@ const tokenRowReducer = (acc, tokenRow) => {
|
||||
createdAt: token.created_at,
|
||||
alias: token.alias,
|
||||
seenAt: token.seen_at,
|
||||
username: token.token_name,
|
||||
username: token.token_name ? token.token_name : token.username,
|
||||
};
|
||||
}
|
||||
const currentToken = acc[tokenRow.secret];
|
||||
@ -63,6 +63,7 @@ const tokenRowReducer = (acc, tokenRow) => {
|
||||
};
|
||||
|
||||
const toRow = (newToken: IApiTokenCreate) => ({
|
||||
username: newToken.tokenName ?? newToken.username,
|
||||
token_name: newToken.tokenName ?? newToken.username,
|
||||
secret: newToken.secret,
|
||||
type: newToken.type,
|
||||
@ -125,6 +126,7 @@ export class ApiTokenStore implements IApiTokenStore {
|
||||
)
|
||||
.select(
|
||||
'tokens.secret',
|
||||
'username',
|
||||
'token_name',
|
||||
'type',
|
||||
'expires_at',
|
||||
|
@ -1,20 +0,0 @@
|
||||
/* eslint camelcase: "off" */
|
||||
'use strict';
|
||||
|
||||
exports.up = function (db, cb) {
|
||||
db.runSql(
|
||||
`
|
||||
ALTER TABLE api_tokens RENAME COLUMN username TO token_name;
|
||||
`,
|
||||
cb,
|
||||
);
|
||||
};
|
||||
|
||||
exports.down = function (db, cb) {
|
||||
db.runSql(
|
||||
`
|
||||
ALTER TABLE api_tokens RENAME COLUMN token_name TO username;
|
||||
`,
|
||||
cb,
|
||||
);
|
||||
};
|
@ -0,0 +1,36 @@
|
||||
'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,
|
||||
);
|
||||
};
|
Loading…
Reference in New Issue
Block a user