From d73dbfba117f2ee6df2d2eaf9549f65a38b26757 Mon Sep 17 00:00:00 2001 From: Failure Date: Fri, 15 Aug 2025 03:33:34 -0700 Subject: [PATCH] fix index + update alert --- .../client/deckeditor/table/TaggerModel.java | 7 +++- .../mage/cards/repository/TagRelation.java | 2 +- .../mage/cards/repository/TagRepository.java | 38 +++++++++---------- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/table/TaggerModel.java b/Mage.Client/src/main/java/mage/client/deckeditor/table/TaggerModel.java index a0b906fd673..259114fbf2d 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/table/TaggerModel.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/table/TaggerModel.java @@ -46,7 +46,12 @@ public class TaggerModel extends AbstractTableModel { placeholder.id = ""; placeholder.description = "Please download Scryfall tags from the 'download' tab & reopen"; placeholder.label = "Data missing!"; - view.add(placeholder); + + Tag placeholder2 = new Tag(); + placeholder2.id = ""; + placeholder2.description = "You may need do a Scryfall download to associate IDs"; + placeholder2.label = "Also!"; + view.add(placeholder2); } } diff --git a/Mage/src/main/java/mage/cards/repository/TagRelation.java b/Mage/src/main/java/mage/cards/repository/TagRelation.java index 8a8a51301bb..24201fbaa25 100644 --- a/Mage/src/main/java/mage/cards/repository/TagRelation.java +++ b/Mage/src/main/java/mage/cards/repository/TagRelation.java @@ -12,7 +12,7 @@ public class TagRelation { @DatabaseField(indexName = "tags_oracle_id_index", uniqueCombo = true) protected String oracle_id; - @DatabaseField(indexName = "tags_tag_id_index", foreign = true, columnName = "tag_id") + @DatabaseField(indexName = "tags_tag_id_index", foreign = true, columnName = "tag_id", uniqueCombo = true) protected Tag tag; } diff --git a/Mage/src/main/java/mage/cards/repository/TagRepository.java b/Mage/src/main/java/mage/cards/repository/TagRepository.java index a80fbd2bc01..15990c6fa51 100644 --- a/Mage/src/main/java/mage/cards/repository/TagRepository.java +++ b/Mage/src/main/java/mage/cards/repository/TagRepository.java @@ -32,8 +32,7 @@ public enum TagRepository { private static final int MAX_DATABASE_FIXES = 10; private static final String VERSION_ENTITY_NAME = "tags"; - private static final long TAG_VERSION = 2; // raise this if db structure was changed - private static final long TAG_RELATION_VERSION = 2; // raise this if new cards were added to the server + private static final long TAG_VERSION = 3; // raise this if db structure was changed private Dao tagsDao; private Dao tagRelationDao; @@ -99,34 +98,31 @@ public enum TagRepository { } try { tagsDao.createOrUpdate(tag); + // clear out old ones + DeleteBuilder cleanser = tagRelationDao.deleteBuilder(); + cleanser.where().eq("tag_id", tag); + cleanser.delete(); + tagRelationDao.callBatchTasks(() -> { // only add new cards (no updates) logger.info("DB: refreshing tag " + tag.label); - // clear out old ones - DeleteBuilder cleanser = tagRelationDao.deleteBuilder(); - cleanser.where().eq("tag_id", tag.id); - cleanser.delete(); - try { - for (String oracleId : oracleIds) { - TagRelation relation = new TagRelation(); - relation.oracle_id = oracleId; - relation.tag = tag; + + for (String oracleId : oracleIds) { + TagRelation relation = new TagRelation(); + relation.oracle_id = oracleId; + relation.tag = tag; + try { tagRelationDao.create(relation); - } - } catch (SQLException e) { - Logger.getLogger(TagRepository.class).error("Error adding tags to DB - " + e, e); - } + } catch (SQLException e) { + e.printStackTrace(); + } + } + return null; }); } catch (Exception e) { e.printStackTrace(); } - - try { - - } catch (Exception ex) { - // - } }