From 102dabdefcbb5c5d56b744ff359bb822a1e91314 Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 10 Mar 2011 19:47:14 +0100 Subject: [PATCH] Only attempt to migrate an old ODBC table if it still exists --- src/gen_storage_migration.erl | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/gen_storage_migration.erl b/src/gen_storage_migration.erl index d965f7450..1e58a0179 100644 --- a/src/gen_storage_migration.erl +++ b/src/gen_storage_migration.erl @@ -137,8 +137,13 @@ migrate_odbc1(Host, Tables, {OldTablesColumns, MigrateFun}) -> {[OldTable | _] = OldTables, [OldColumns | _] = OldColumnsAll} = lists:unzip(OldTablesColumns), OldTablesA = [list_to_atom(Table) || Table <- OldTables], - ColumnsT = [odbc_table_columns_t(OldTable1) || OldTable1 <- OldTables], - migrate_odbc2(Host, Tables, OldTable, OldTables, OldColumns, OldColumnsAll, OldTablesA, ColumnsT, MigrateFun). + case is_table_exists(OldTable, odbc) of + true -> + ColumnsT = [odbc_table_columns_t(OldTable1) || OldTable1 <- OldTables], + migrate_odbc2(Host, Tables, OldTable, OldTables, OldColumns, OldColumnsAll, OldTablesA, ColumnsT, MigrateFun); + false -> + ignored + end. migrate_odbc2(Host, Tables, OldTable, OldTables, OldColumns, OldColumnsAll, OldTablesA, ColumnsT, MigrateFun) when ColumnsT == OldColumnsAll -> @@ -236,3 +241,10 @@ odbc_table_columns_t(Table) -> Columns2 end. +is_table_exists(Table, odbc) -> + case catch ejabberd_odbc:sql_query_t("SELECT COUNT(*) FROM " ++ Table) of + {selected, _, _} -> + true; + _ -> + false + end.