mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-25 01:25:36 -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 USERNAME = localize('sql.migration.username', "User name");
|
||||
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 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");
|
||||
|
||||
@@ -14,7 +14,8 @@ import { v4 as uuidv4 } from 'uuid';
|
||||
import { sendSqlMigrationActionEvent, TelemetryAction, TelemetryViews, logError } from '../telemtery';
|
||||
import { hashString, deepClone } from '../api/utils';
|
||||
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();
|
||||
|
||||
export enum State {
|
||||
@@ -1189,6 +1190,37 @@ export class MigrationStateModel implements Model, vscode.Disposable {
|
||||
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 {
|
||||
|
||||
@@ -60,7 +60,8 @@ export enum TelemetryAction {
|
||||
GetDBSkuRecommendation = 'GetDBSkuRecommendation',
|
||||
GetInstanceRequirements = 'GetInstanceRequirements',
|
||||
StartDataCollection = 'StartDataCollection',
|
||||
StopDataCollection = 'StopDataCollection'
|
||||
StopDataCollection = 'StopDataCollection',
|
||||
GetDatabasesListFailed = 'GetDatabasesListFailed'
|
||||
}
|
||||
|
||||
export function logError(telemetryView: TelemetryViews, err: string, error: any): void {
|
||||
|
||||
@@ -119,8 +119,7 @@ export class DatabaseSelectorPage extends MigrationWizardPage {
|
||||
const searchText = value?.toLowerCase();
|
||||
return row[2]?.toLowerCase()?.indexOf(searchText) > -1 // database name
|
||||
|| row[3]?.toLowerCase()?.indexOf(searchText) > -1 // state
|
||||
|| row[4]?.toLowerCase()?.indexOf(searchText) > -1 // size
|
||||
|| row[5]?.toLowerCase()?.indexOf(searchText) > -1; // last backup date
|
||||
|| row[4]?.toLowerCase()?.indexOf(searchText) > -1; // size
|
||||
});
|
||||
}
|
||||
|
||||
@@ -208,14 +207,6 @@ export class DatabaseSelectorPage extends MigrationWizardPage {
|
||||
cssClass: cssClass,
|
||||
headerCssClass: cssClass,
|
||||
},
|
||||
{
|
||||
name: constants.LAST_BACKUP,
|
||||
value: 'lastBackup',
|
||||
type: azdata.ColumnType.text,
|
||||
width: 130,
|
||||
cssClass: cssClass,
|
||||
headerCssClass: cssClass,
|
||||
},
|
||||
]
|
||||
}).component();
|
||||
|
||||
@@ -242,20 +233,15 @@ export class DatabaseSelectorPage extends MigrationWizardPage {
|
||||
}
|
||||
|
||||
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[] = [
|
||||
'master',
|
||||
'tempdb',
|
||||
'msdb',
|
||||
'model'
|
||||
];
|
||||
const databaseList = (<azdata.DatabaseInfo[]>await metaDataService
|
||||
.getDatabases(ownerUri))
|
||||
|
||||
const databaseList = (<azdata.DatabaseInfo[]>await this.migrationStateModel
|
||||
.getDatabasesList())
|
||||
.filter(database => !excludeDbs.includes(database.options.name))
|
||||
|| [];
|
||||
|
||||
@@ -274,7 +260,6 @@ export class DatabaseSelectorPage extends MigrationWizardPage {
|
||||
databaseName,
|
||||
database.options.state,
|
||||
database.options.sizeInMB,
|
||||
database.options.lastBackup,
|
||||
];
|
||||
}) || [];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user