mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-16 10:58:30 -05:00
remove Last Backup colum on assessment db list. (#20728)
* remove Last Backup colum on assessment db list. * column cleanup
This commit is contained in:
20
extensions/sql-migration/src/constants/queries.ts
Normal file
20
extensions/sql-migration/src/constants/queries.ts
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
/*---------------------------------------------------------------------------------------------
|
||||||
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||||
|
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||||
|
*--------------------------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
|
||||||
|
//Select all databases available on the server with size
|
||||||
|
export const SELECT_ALL_DB_W_SIZE = `
|
||||||
|
WITH
|
||||||
|
db_size
|
||||||
|
AS
|
||||||
|
(
|
||||||
|
SELECT database_id, CAST(SUM(size) * 8.0 / 1024 AS INTEGER) size
|
||||||
|
FROM sys.master_files with (nolock)
|
||||||
|
GROUP BY database_id
|
||||||
|
)
|
||||||
|
SELECT name, state_desc AS state, db_size.size
|
||||||
|
FROM sys.databases with (nolock) LEFT JOIN db_size ON sys.databases.database_id = db_size.database_id
|
||||||
|
WHERE sys.databases.state = 0
|
||||||
|
`;
|
||||||
@@ -933,7 +933,6 @@ export const ENTER_YOUR_SQL_CREDS = localize('sql.migration.enter.your.sql.cred'
|
|||||||
export const SERVER = localize('sql.migration.server', "Server");
|
export const SERVER = localize('sql.migration.server', "Server");
|
||||||
export const USERNAME = localize('sql.migration.username', "User name");
|
export const USERNAME = localize('sql.migration.username', "User name");
|
||||||
export const SIZE = localize('sql.migration.size', "Size (MB)");
|
export const SIZE = localize('sql.migration.size', "Size (MB)");
|
||||||
export const LAST_BACKUP = localize('sql.migration.last.backup', "Last backup");
|
|
||||||
export const DATABASE_MIGRATE_TEXT = localize('sql.migrate.text', "Select the databases that you want to migrate to Azure SQL.");
|
export const DATABASE_MIGRATE_TEXT = localize('sql.migrate.text', "Select the databases that you want to migrate to Azure SQL.");
|
||||||
export const OFFLINE_CAPS = localize('sql.migration.offline.caps', "OFFLINE");
|
export const OFFLINE_CAPS = localize('sql.migration.offline.caps', "OFFLINE");
|
||||||
export const SELECT_DATABASE_TO_CONTINUE = localize('sql.migration.select.database.to.continue', "Please select 1 or more databases to assess for migration");
|
export const SELECT_DATABASE_TO_CONTINUE = localize('sql.migration.select.database.to.continue', "Please select 1 or more databases to assess for migration");
|
||||||
|
|||||||
@@ -14,7 +14,8 @@ import { v4 as uuidv4 } from 'uuid';
|
|||||||
import { sendSqlMigrationActionEvent, TelemetryAction, TelemetryViews, logError } from '../telemtery';
|
import { sendSqlMigrationActionEvent, TelemetryAction, TelemetryViews, logError } from '../telemtery';
|
||||||
import { hashString, deepClone } from '../api/utils';
|
import { hashString, deepClone } from '../api/utils';
|
||||||
import { SKURecommendationPage } from '../wizard/skuRecommendationPage';
|
import { SKURecommendationPage } from '../wizard/skuRecommendationPage';
|
||||||
import { excludeDatabses, TargetDatabaseInfo } from '../api/sqlUtils';
|
import { excludeDatabses, getSqlString, TargetDatabaseInfo } from '../api/sqlUtils';
|
||||||
|
import * as queries from '../constants/queries';
|
||||||
const localize = nls.loadMessageBundle();
|
const localize = nls.loadMessageBundle();
|
||||||
|
|
||||||
export enum State {
|
export enum State {
|
||||||
@@ -1189,6 +1190,37 @@ export class MigrationStateModel implements Model, vscode.Disposable {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Get QueryProvider
|
||||||
|
private async runQueryWithResults(queryString: string): Promise<azdata.SimpleExecuteResult> {
|
||||||
|
const connectionProfile = await this.getSourceConnectionProfile();
|
||||||
|
const connectionUri = await azdata.connection.getUriForConnection(this._sourceConnectionId);
|
||||||
|
const queryProvider = azdata.dataprotocol.getProvider<azdata.QueryProvider>(connectionProfile.providerId, azdata.DataProviderType.QueryProvider);
|
||||||
|
|
||||||
|
return await queryProvider.runQueryAndReturn(connectionUri, queryString);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async getDatabasesList(): Promise<azdata.DatabaseInfo[]> {
|
||||||
|
try {
|
||||||
|
const queryResult = await this.runQueryWithResults(queries.SELECT_ALL_DB_W_SIZE);
|
||||||
|
|
||||||
|
const result = queryResult.rows.map(row => {
|
||||||
|
return {
|
||||||
|
options: {
|
||||||
|
name: getSqlString(row[0]),
|
||||||
|
state: getSqlString(row[1]),
|
||||||
|
sizeInMB: getSqlString(row[2]),
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}) ?? [];
|
||||||
|
|
||||||
|
return result;
|
||||||
|
} catch (error) {
|
||||||
|
logError(TelemetryViews.SkuRecommendationWizard, TelemetryAction.GetDatabasesListFailed, error);
|
||||||
|
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ServerAssessment {
|
export interface ServerAssessment {
|
||||||
|
|||||||
@@ -60,7 +60,8 @@ export enum TelemetryAction {
|
|||||||
GetDBSkuRecommendation = 'GetDBSkuRecommendation',
|
GetDBSkuRecommendation = 'GetDBSkuRecommendation',
|
||||||
GetInstanceRequirements = 'GetInstanceRequirements',
|
GetInstanceRequirements = 'GetInstanceRequirements',
|
||||||
StartDataCollection = 'StartDataCollection',
|
StartDataCollection = 'StartDataCollection',
|
||||||
StopDataCollection = 'StopDataCollection'
|
StopDataCollection = 'StopDataCollection',
|
||||||
|
GetDatabasesListFailed = 'GetDatabasesListFailed'
|
||||||
}
|
}
|
||||||
|
|
||||||
export function logError(telemetryView: TelemetryViews, err: string, error: any): void {
|
export function logError(telemetryView: TelemetryViews, err: string, error: any): void {
|
||||||
|
|||||||
@@ -119,8 +119,7 @@ export class DatabaseSelectorPage extends MigrationWizardPage {
|
|||||||
const searchText = value?.toLowerCase();
|
const searchText = value?.toLowerCase();
|
||||||
return row[2]?.toLowerCase()?.indexOf(searchText) > -1 // database name
|
return row[2]?.toLowerCase()?.indexOf(searchText) > -1 // database name
|
||||||
|| row[3]?.toLowerCase()?.indexOf(searchText) > -1 // state
|
|| row[3]?.toLowerCase()?.indexOf(searchText) > -1 // state
|
||||||
|| row[4]?.toLowerCase()?.indexOf(searchText) > -1 // size
|
|| row[4]?.toLowerCase()?.indexOf(searchText) > -1; // size
|
||||||
|| row[5]?.toLowerCase()?.indexOf(searchText) > -1; // last backup date
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -208,14 +207,6 @@ export class DatabaseSelectorPage extends MigrationWizardPage {
|
|||||||
cssClass: cssClass,
|
cssClass: cssClass,
|
||||||
headerCssClass: cssClass,
|
headerCssClass: cssClass,
|
||||||
},
|
},
|
||||||
{
|
|
||||||
name: constants.LAST_BACKUP,
|
|
||||||
value: 'lastBackup',
|
|
||||||
type: azdata.ColumnType.text,
|
|
||||||
width: 130,
|
|
||||||
cssClass: cssClass,
|
|
||||||
headerCssClass: cssClass,
|
|
||||||
},
|
|
||||||
]
|
]
|
||||||
}).component();
|
}).component();
|
||||||
|
|
||||||
@@ -242,20 +233,15 @@ export class DatabaseSelectorPage extends MigrationWizardPage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private async _loadDatabaseList(stateMachine: MigrationStateModel, selectedDatabases: string[]): Promise<void> {
|
private async _loadDatabaseList(stateMachine: MigrationStateModel, selectedDatabases: string[]): Promise<void> {
|
||||||
const providerId = (await stateMachine.getSourceConnectionProfile()).providerId;
|
|
||||||
const metaDataService = azdata.dataprotocol.getProvider<azdata.MetadataProvider>(
|
|
||||||
providerId,
|
|
||||||
azdata.DataProviderType.MetadataProvider);
|
|
||||||
const ownerUri = await azdata.connection.getUriForConnection(
|
|
||||||
stateMachine.sourceConnectionId);
|
|
||||||
const excludeDbs: string[] = [
|
const excludeDbs: string[] = [
|
||||||
'master',
|
'master',
|
||||||
'tempdb',
|
'tempdb',
|
||||||
'msdb',
|
'msdb',
|
||||||
'model'
|
'model'
|
||||||
];
|
];
|
||||||
const databaseList = (<azdata.DatabaseInfo[]>await metaDataService
|
|
||||||
.getDatabases(ownerUri))
|
const databaseList = (<azdata.DatabaseInfo[]>await this.migrationStateModel
|
||||||
|
.getDatabasesList())
|
||||||
.filter(database => !excludeDbs.includes(database.options.name))
|
.filter(database => !excludeDbs.includes(database.options.name))
|
||||||
|| [];
|
|| [];
|
||||||
|
|
||||||
@@ -274,7 +260,6 @@ export class DatabaseSelectorPage extends MigrationWizardPage {
|
|||||||
databaseName,
|
databaseName,
|
||||||
database.options.state,
|
database.options.state,
|
||||||
database.options.sizeInMB,
|
database.options.sizeInMB,
|
||||||
database.options.lastBackup,
|
|
||||||
];
|
];
|
||||||
}) || [];
|
}) || [];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user