diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java
index f870cbf229d0be9ef986d9cfbff624e18a911776..6e2e7c1e5c8b04a0743812a0f609c79fe6ae5221 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseService.java
@@ -11,6 +11,7 @@ import de.deadlocker8.budgetmaster.charts.ChartService;
 import de.deadlocker8.budgetmaster.charts.ChartType;
 import de.deadlocker8.budgetmaster.database.model.BackupDatabase;
 import de.deadlocker8.budgetmaster.database.model.v8.BackupDatabase_v8;
+import de.deadlocker8.budgetmaster.hints.HintService;
 import de.deadlocker8.budgetmaster.icon.Icon;
 import de.deadlocker8.budgetmaster.icon.IconService;
 import de.deadlocker8.budgetmaster.images.Image;
@@ -64,9 +65,12 @@ public class DatabaseService
 	private final SettingsService settingsService;
 	private final ImageService imageService;
 	private final IconService iconService;
+	private final HintService hintService;
+
+	private final List<Resettable> services;
 
 	@Autowired
-	public DatabaseService(AccountService accountService, CategoryService categoryService, TransactionService transactionService, TagService tagService, TemplateService templateService, TemplateGroupService templateGroupService, ChartService chartService, SettingsService settingsService, ImageService imageService, IconService iconService)
+	public DatabaseService(AccountService accountService, CategoryService categoryService, TransactionService transactionService, TagService tagService, TemplateService templateService, TemplateGroupService templateGroupService, ChartService chartService, SettingsService settingsService, ImageService imageService, IconService iconService, HintService hintService)
 	{
 		this.accountService = accountService;
 		this.categoryService = categoryService;
@@ -78,18 +82,23 @@ public class DatabaseService
 		this.settingsService = settingsService;
 		this.imageService = imageService;
 		this.iconService = iconService;
+		this.hintService = hintService;
+		this.services = List.of(transactionService, templateService, templateGroupService, categoryService, accountService, tagService, chartService, iconService, imageService, tagService, hintService);
 	}
 
 	public void reset()
 	{
-		final List<Resettable> services = List.of(transactionService, templateService, templateGroupService, categoryService, accountService, tagService, chartService, iconService, imageService);
-
 		for(Resettable service : services)
 		{
 			service.deleteAll();
 		}
 
 		// create defaults after deletion to avoid deletion of newly created defaults
+		createDefaults();
+	}
+
+	public void createDefaults()
+	{
 		for(Resettable service : services)
 		{
 			service.createDefaults();
diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/hints/HintService.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/hints/HintService.java
index 3085e9249dac8a950e0dc1701b54db0c41337add..07150e5ef85de717019e5129ebb50eb37fec8a8d 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/hints/HintService.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/hints/HintService.java
@@ -1,15 +1,20 @@
 package de.deadlocker8.budgetmaster.hints;
 
 import de.deadlocker8.budgetmaster.services.Resettable;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.MessageFormat;
 import java.util.List;
 
 @Service
 public class HintService implements Resettable
 {
+	private static final Logger LOGGER = LoggerFactory.getLogger(HintService.class);
+
 	private final HintRepository hintRepository;
 
 	@Autowired
@@ -64,6 +69,7 @@ public class HintService implements Resettable
 			final Hint existingHint = hintRepository.findByLocalizationKey(localizationKey);
 			if(existingHint == null)
 			{
+				LOGGER.debug(MessageFormat.format("Created missing hint ''{0}''", localizationKey));
 				hintRepository.save(new Hint(localizationKey, false));
 			}
 		}
diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/migration/MigrationController.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/migration/MigrationController.java
index 4103efd708022700b7cbb5bd9a8c574429ef30c5..ad871cd10fef31d4ce4c6d94f509de9221996fc5 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/migration/MigrationController.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/migration/MigrationController.java
@@ -2,6 +2,7 @@ package de.deadlocker8.budgetmaster.migration;
 
 import de.deadlocker8.budgetmaster.authentication.UserService;
 import de.deadlocker8.budgetmaster.controller.BaseController;
+import de.deadlocker8.budgetmaster.database.DatabaseService;
 import de.deadlocker8.budgetmaster.settings.SettingsService;
 import de.deadlocker8.budgetmaster.utils.Mappings;
 import de.deadlocker8.budgetmaster.utils.Strings;
@@ -41,13 +42,15 @@ public class MigrationController extends BaseController
 	private final MigrationService migrationService;
 	private final SettingsService settingsService;
 	private final UserService userService;
+	private final DatabaseService databaseService;
 
 	@Autowired
-	public MigrationController(MigrationService migrationService, SettingsService settingsService, UserService userService)
+	public MigrationController(MigrationService migrationService, SettingsService settingsService, UserService userService, DatabaseService databaseService)
 	{
 		this.migrationService = migrationService;
 		this.settingsService = settingsService;
 		this.userService = userService;
+		this.databaseService = databaseService;
 	}
 
 	@GetMapping("/cancel")
@@ -117,6 +120,7 @@ public class MigrationController extends BaseController
 		if(migrationStatus == MigrationStatus.SUCCESS)
 		{
 			model.addAttribute(ModelAttributes.SUMMARY, migrationService.getSummary());
+			databaseService.createDefaults();
 		}
 		if(migrationStatus == MigrationStatus.ERROR)
 		{
diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java
index c35ef92e0af5d5eb43e4639e32e64043de2771b8..683997a3f3a9ff239a047f88c36895037dc6e948 100644
--- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java
+++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmaster/tags/TagService.java
@@ -3,8 +3,6 @@ package de.deadlocker8.budgetmaster.tags;
 import de.deadlocker8.budgetmaster.services.AccessAllEntities;
 import de.deadlocker8.budgetmaster.services.Resettable;
 import org.padler.natorder.NaturalOrderComparator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -16,8 +14,6 @@ import java.util.Map;
 @Service
 public class TagService implements Resettable, AccessAllEntities<Tag>
 {
-	private static final Logger LOGGER = LoggerFactory.getLogger(TagService.class);
-
 	private final TagRepository tagRepository;
 
 	@Autowired
@@ -34,9 +30,7 @@ public class TagService implements Resettable, AccessAllEntities<Tag>
 	@Override
 	public void deleteAll()
 	{
-		LOGGER.info("Resetting tags...");
-		tagRepository.deleteAll();
-		LOGGER.info("All tags reset.");
+		// unused tags are deleted automatically in TagScheduler
 	}
 
 	@Override