diff --git a/installsystems/database.py b/installsystems/database.py
index 5b912774436c5c3a743033d82ba8baa5e5134625..c723e26eb352597028c5d7653b1527d7265ba93c 100644
--- a/installsystems/database.py
+++ b/installsystems/database.py
@@ -47,10 +47,23 @@ class Database(object):
             raise Exception("Database not exists")
         self.conn = sqlite3.connect(self.path, isolation_level=None)
         self.conn.execute("PRAGMA foreign_keys = ON")
+        # get database version
+        try:
+            r = self.ask("SELECT value FROM misc WHERE key = 'version'").fetchone()
+            if r is None:
+                raise TypeError()
+            self.version = r[0]
+        except:
+            self.version = u"1"
+        # we only support database v1
+        if self.version != u"1":
+            debug("Invalid database format: %s" % self.version)
+            raise Exception("Invalid database format")
         # we make a query to be sure format is valid
         try:
             self.ask("SELECT * FROM image")
         except:
+            debug("Invalid database format: %s" % self.version)
             raise Exception("Invalid database format")
 
     def begin(self):
diff --git a/installsystems/repository.py b/installsystems/repository.py
index 84d04399c764218bf7df351f7aab5a76618e9446..365408dcbfb00f9b9b24cf81116b5acf0a70a8f0 100644
--- a/installsystems/repository.py
+++ b/installsystems/repository.py
@@ -66,7 +66,6 @@ class Repository(object):
 
     def __init__(self, config):
         self.config = config
-        self.version = 1
         self.local = istools.isfile(self.config.path)
         if not self.config.offline:
             try:
@@ -76,7 +75,6 @@ class Repository(object):
         if self.config.offline:
             debug("Repository %s is offline" % config.name)
 
-
     def __getattribute__(self, name):
         '''
         Raise an error if repository is unavailable
@@ -92,6 +90,13 @@ class Repository(object):
             raise Exception("Repository %s is offline" % config.name)
         return object.__getattribute__(self, name)
 
+    @property
+    def version(self):
+        '''
+        Return repository version
+        '''
+        return self.db.version
+
     def init(self):
         '''
         Initialize an empty base repository