diff --git a/Changes b/Changes
index 0cec767..13db6ce 100644
--- a/Changes
+++ b/Changes
@@ -4,6 +4,7 @@
 - Add a test: changing timeout using a pipe
 - Add pipe response rewriting (#794)
 - Fix datatype for query statistics (close #802)
+- Remove admin test data from database migration (close #808)
 
 # version 0.78.2
 
diff --git a/src/main/java/de/ids_mannheim/korap/dao/AdminDaoImpl.java b/src/main/java/de/ids_mannheim/korap/dao/AdminDaoImpl.java
index 172ac69..0291e8a 100644
--- a/src/main/java/de/ids_mannheim/korap/dao/AdminDaoImpl.java
+++ b/src/main/java/de/ids_mannheim/korap/dao/AdminDaoImpl.java
@@ -1,6 +1,7 @@
 package de.ids_mannheim.korap.dao;
 
 import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
 
 import de.ids_mannheim.korap.entity.Admin;
 import de.ids_mannheim.korap.entity.Admin_;
@@ -20,7 +21,7 @@
  * @author margaretha
  *
  */
-//@Transactional
+@Transactional
 @Repository
 public class AdminDaoImpl implements AdminDao {
 
@@ -32,9 +33,11 @@
      */
     @Override
     public void addAccount (User user) {
-        Admin admin = new Admin();
-        admin.setUserId(user.getUsername());
-        entityManager.persist(admin);
+		if (!isAdmin(user.getUsername())) {
+			Admin admin = new Admin();
+			admin.setUserId(user.getUsername());
+			entityManager.persist(admin);
+		}
     }
 
     /* (non-Javadoc)
diff --git a/src/main/java/de/ids_mannheim/korap/init/Initializator.java b/src/main/java/de/ids_mannheim/korap/init/Initializator.java
index 4965e76..0304fa1 100644
--- a/src/main/java/de/ids_mannheim/korap/init/Initializator.java
+++ b/src/main/java/de/ids_mannheim/korap/init/Initializator.java
@@ -10,9 +10,12 @@
 import de.ids_mannheim.korap.config.FullConfiguration;
 import de.ids_mannheim.korap.config.KustvaktConfiguration;
 import de.ids_mannheim.korap.constant.OAuth2Scope;
+import de.ids_mannheim.korap.dao.AdminDao;
 import de.ids_mannheim.korap.exceptions.KustvaktException;
 import de.ids_mannheim.korap.oauth2.dao.AccessScopeDao;
 import de.ids_mannheim.korap.oauth2.service.OAuth2InitClientService;
+import de.ids_mannheim.korap.user.KorAPUser;
+import de.ids_mannheim.korap.user.User;
 import de.ids_mannheim.korap.util.QueryException;
 
 /**
@@ -27,6 +30,8 @@
     @Autowired
     private AccessScopeDao accessScopeDao;
     @Autowired
+    private AdminDao adminDao;
+    @Autowired
     private NamedVCLoader vcLoader;
     @Autowired
     private ResourceParser resourceParser;
@@ -61,6 +66,7 @@
 			clientService.createInitialTestSuperClient();
 		}
 		vcLoader.loadVCToCache("system-vc", "/vc/system-vc.jsonld");
+		adminDao.addAccount(new KorAPUser("admin"));
 	}
 
     public void initResourceTest () throws IOException, KustvaktException {
diff --git a/src/main/resources/db/test/V3.4__insert_admins.sql b/src/main/resources/db/test/V3.4__insert_admins.sql
index d8dbd8c..9974c4c 100644
--- a/src/main/resources/db/test/V3.4__insert_admins.sql
+++ b/src/main/resources/db/test/V3.4__insert_admins.sql
@@ -1,2 +1,2 @@
 -- dummy admin
-INSERT INTO admin(user_id) VALUES ("admin");
\ No newline at end of file
+--INSERT INTO admin(user_id) VALUES ("admin");
\ No newline at end of file
