diff --git a/config/orientdb.yml b/config/orientdb.yml
index 07945002eacbdb755ce3058bf6ff217959fc76e8..7c25a5c84c4c90bca4a1b078509cc12039527486 100644
--- a/config/orientdb.yml
+++ b/config/orientdb.yml
@@ -1,6 +1,6 @@
 development: &development
   host: localhost
-  database: PortalMEC
+  database: Teste2
   username: admin
   password: admin
   port: 2480
diff --git a/lib/orient_db/migration.rb b/lib/orient_db/migration.rb
index 12d0f8a5b4fd1320bfcb1fd6a9dc1b69b65161cd..0d282d3183fd08b1481242d98b2bfd519a85d60f 100644
--- a/lib/orient_db/migration.rb
+++ b/lib/orient_db/migration.rb
@@ -29,15 +29,23 @@ module OrientDb
       end
     end
 
+    def drop_class(klass)
+      if @client.class_exists? klass
+        @client.drop_class(klass, :mode => :strict)
+      end
+    end
+
     def add_index(klass, property, type, engine=nil, metadata=nil)
       engine = engine.nil? ? "" : " ENGINE #{engine}"
       metadata = metadata.nil? ? "" : " METADATA #{metadata.to_s}"
       begin
         @client.command "CREATE INDEX #{klass}.#{property} ON #{klass} (#{property}) #{type}#{engine}#{metadata}"
       rescue Orientdb4r::ServerError => e
+        # If the index already exists OrientDB will give an error containing this message
         unless e.message.include? "Index with name #{klass.downcase}.#{property.downcase}"
           puts "Error at index creation"
           p e.message
+          p.backtrace
         end
       end
     end
diff --git a/lib/orient_db/migrations.rb b/lib/orient_db/migrations.rb
index 056a57799b91d04c6c21dd17eb819d106195d9d3..debed17e525595a78fd72f9bf8c427b8ea0e63e0 100644
--- a/lib/orient_db/migrations.rb
+++ b/lib/orient_db/migrations.rb
@@ -5,16 +5,15 @@ class OrientDb::Migrations
 
   def initialize(client)
     @migrations = []
-    # Vertices inheriting from V
+    # Vertices
     @migrations << CreateUser.new(client)
     @migrations << CreateAttribute.new(client)
     @migrations << CreateComment.new(client)
-
-    # Vertices inheriting from Object
     @migrations << CreateObject.new(client)
+    # Vertices inheriting from Object
     @migrations << CreateInstitution.new(client)
-    # Vertices inheriting from LearningObject
     @migrations << CreateLearningObject.new(client)
+    # Vertices inheriting from LearningObject
     @migrations << CreateCollection.new(client)
     @migrations << CreateSubject.new(client)
     @migrations << CreateMainPage.new(client)
@@ -34,4 +33,8 @@ class OrientDb::Migrations
   def run
     @migrations.each { |m| m.up }
   end
+
+  def drop
+    @migrations.reverse_each { |m| m.down }
+  end
 end
\ No newline at end of file
diff --git a/lib/orient_db/migrations/create_attribute.rb b/lib/orient_db/migrations/create_attribute.rb
index 0e9b333fdcb6fbf25c4dc3872342e1e92941e62f..db0de64764326513ede16021446a9368fe9fb9c0 100644
--- a/lib/orient_db/migrations/create_attribute.rb
+++ b/lib/orient_db/migrations/create_attribute.rb
@@ -11,6 +11,6 @@ class OrientDb::Migrations::CreateAttribute < OrientDb::Migration
   end
 
   def down
-    # TODO
+    drop_class 'Attribute'
   end
 end
\ No newline at end of file
diff --git a/lib/orient_db/migrations/create_belongs_to.rb b/lib/orient_db/migrations/create_belongs_to.rb
index 4552941be56de37a636b820972039bfd15a6fee7..6ceff5b036fdb3b222662a51fa8b1eed41f70302 100644
--- a/lib/orient_db/migrations/create_belongs_to.rb
+++ b/lib/orient_db/migrations/create_belongs_to.rb
@@ -5,6 +5,6 @@ class OrientDb::Migrations::CreateBelongsTo < OrientDb::Migration
   end
 
   def down
-    # TODO
+    drop_class 'BelongsTo'
   end
 end
\ No newline at end of file
diff --git a/lib/orient_db/migrations/create_collection.rb b/lib/orient_db/migrations/create_collection.rb
index cc9e6fc29a30cb3a6ef62b4e245f1cbed49e4e3c..20347685cc69cf00f0fa1ddecb18982f62b1e715 100644
--- a/lib/orient_db/migrations/create_collection.rb
+++ b/lib/orient_db/migrations/create_collection.rb
@@ -8,6 +8,6 @@ class OrientDb::Migrations::CreateCollection < OrientDb::Migration
   end
 
   def down
-    # TODO
+    drop_class 'Collection'
   end
 end
\ No newline at end of file
diff --git a/lib/orient_db/migrations/create_comment.rb b/lib/orient_db/migrations/create_comment.rb
index 8fa4307b7b40d50cce8925242073c5802b31d236..a53be2dd639dabe776397f5abaf528a3f635d588 100644
--- a/lib/orient_db/migrations/create_comment.rb
+++ b/lib/orient_db/migrations/create_comment.rb
@@ -9,6 +9,6 @@ class OrientDb::Migrations::CreateComment < OrientDb::Migration
   end
 
   def down
-    # TODO
+    drop_class 'Comment'
   end
 end
\ No newline at end of file
diff --git a/lib/orient_db/migrations/create_commented_by.rb b/lib/orient_db/migrations/create_commented_by.rb
index 9d2c1db15d8494ed3a6129fb8df8684e14695f0a..c35515623adc1f40c44a3253b77c97a1381d9493 100644
--- a/lib/orient_db/migrations/create_commented_by.rb
+++ b/lib/orient_db/migrations/create_commented_by.rb
@@ -5,6 +5,6 @@ class OrientDb::Migrations::CreateCommentedBy < OrientDb::Migration
   end
 
   def down
-    # TODO
+    drop_class 'CommentedBy'
   end
 end
\ No newline at end of file
diff --git a/lib/orient_db/migrations/create_comments.rb b/lib/orient_db/migrations/create_comments.rb
index 032354838f6fb7854b29aa31def25af2df48588b..adc6b6d5825f9a7a19813029a4c0840bb0d1e65a 100644
--- a/lib/orient_db/migrations/create_comments.rb
+++ b/lib/orient_db/migrations/create_comments.rb
@@ -5,6 +5,6 @@ class OrientDb::Migrations::CreateComments < OrientDb::Migration
   end
 
   def down
-    # TODO
+    drop_class 'Comments'
   end
 end
\ No newline at end of file
diff --git a/lib/orient_db/migrations/create_has_attr.rb b/lib/orient_db/migrations/create_has_attr.rb
index 40a4ce4bfec0b15c8f5dd55cfda17951d62b8dec..7a7613c54efea93e468e7600de449d965191c55a 100644
--- a/lib/orient_db/migrations/create_has_attr.rb
+++ b/lib/orient_db/migrations/create_has_attr.rb
@@ -5,6 +5,6 @@ class OrientDb::Migrations::CreateHasAttr < OrientDb::Migration
   end
 
   def down
-    # TODO
+    drop_class 'HasAttr'
   end
 end
\ No newline at end of file
diff --git a/lib/orient_db/migrations/create_institution.rb b/lib/orient_db/migrations/create_institution.rb
index 1f8b50cfced1fff78fa42897cab939015a9dfc3f..2c23aa4838b7f1a938c6d18a62ea1b1bc7170bc1 100644
--- a/lib/orient_db/migrations/create_institution.rb
+++ b/lib/orient_db/migrations/create_institution.rb
@@ -11,6 +11,6 @@ class OrientDb::Migrations::CreateInstitution < OrientDb::Migration
   end
 
   def down
-    # TODO
+    drop_class 'Institution'
   end
 end
\ No newline at end of file
diff --git a/lib/orient_db/migrations/create_is_about.rb b/lib/orient_db/migrations/create_is_about.rb
index 3c3b025460fa49851b1ca8f5290171d2444f9d6a..242fc25124753caa94c4137b9888c28d944274f9 100644
--- a/lib/orient_db/migrations/create_is_about.rb
+++ b/lib/orient_db/migrations/create_is_about.rb
@@ -5,6 +5,6 @@ class OrientDb::Migrations::CreateIsAbout < OrientDb::Migration
   end
 
   def down
-    # TODO
+    drop_class 'IsAbout'
   end
 end
\ No newline at end of file
diff --git a/lib/orient_db/migrations/create_learning_object.rb b/lib/orient_db/migrations/create_learning_object.rb
index f8dea7b1a51d6a70a55fbf8f301c119d44d1ed33..194fedb43ebad70e53e02647dc1a404c4dd7a0a3 100644
--- a/lib/orient_db/migrations/create_learning_object.rb
+++ b/lib/orient_db/migrations/create_learning_object.rb
@@ -12,6 +12,6 @@ class OrientDb::Migrations::CreateLearningObject < OrientDb::Migration
   end
 
   def down
-    # TODO
+    drop_class 'LearningObject'
   end
 end
\ No newline at end of file
diff --git a/lib/orient_db/migrations/create_like.rb b/lib/orient_db/migrations/create_like.rb
index e66f06253f36066b99b35f1c59b213b129db561c..5bbb2bff96a442183180050c450ee4c1bbc87a89 100644
--- a/lib/orient_db/migrations/create_like.rb
+++ b/lib/orient_db/migrations/create_like.rb
@@ -5,6 +5,6 @@ class OrientDb::Migrations::CreateLike < OrientDb::Migration
   end
 
   def down
-    # TODO
+    drop_class 'Like'
   end
 end
\ No newline at end of file
diff --git a/lib/orient_db/migrations/create_main_page.rb b/lib/orient_db/migrations/create_main_page.rb
index 6756abb2dda6aa7a8cebbe70297628720bbf4fec..bdcbc099e7dce5bd4ff0459dc150f70cfddd853d 100644
--- a/lib/orient_db/migrations/create_main_page.rb
+++ b/lib/orient_db/migrations/create_main_page.rb
@@ -7,6 +7,6 @@ class OrientDb::Migrations::CreateMainPage < OrientDb::Migration
   end
 
   def down
-    # TODO
+    drop_class 'MainPage'
   end
 end
\ No newline at end of file
diff --git a/lib/orient_db/migrations/create_object.rb b/lib/orient_db/migrations/create_object.rb
index 27f49c3c18b6b1b66806859a550c073af91fa332..d25a6d96f6c1bd97ae9f0cf32a861438d2cff8bc 100644
--- a/lib/orient_db/migrations/create_object.rb
+++ b/lib/orient_db/migrations/create_object.rb
@@ -9,6 +9,6 @@ class OrientDb::Migrations::CreateObject < OrientDb::Migration
   end
 
   def down
-    # TODO
+    drop_class 'Object'
   end
 end
\ No newline at end of file
diff --git a/lib/orient_db/migrations/create_published_by.rb b/lib/orient_db/migrations/create_published_by.rb
index 99973157b695a0274b344d3fc51b883965fbc7d5..07df1d07f42d549b4567fb692a9100c81e28c55b 100644
--- a/lib/orient_db/migrations/create_published_by.rb
+++ b/lib/orient_db/migrations/create_published_by.rb
@@ -5,6 +5,6 @@ class OrientDb::Migrations::CreatePublishedBy < OrientDb::Migration
   end
 
   def down
-    # TODO
+    drop_class 'PublishedBy'
   end
 end
\ No newline at end of file
diff --git a/lib/orient_db/migrations/create_subject.rb b/lib/orient_db/migrations/create_subject.rb
index 4e680a597d8184d3829a61e6988b91cf3a909131..cee8e81723ca32d8f52dbb6365136d0d90b7d486 100644
--- a/lib/orient_db/migrations/create_subject.rb
+++ b/lib/orient_db/migrations/create_subject.rb
@@ -7,6 +7,6 @@ class OrientDb::Migrations::CreateSubject < OrientDb::Migration
   end
 
   def down
-    # TODO
+    drop_class 'Subject'
   end
 end
\ No newline at end of file
diff --git a/lib/orient_db/migrations/create_user.rb b/lib/orient_db/migrations/create_user.rb
index 248027eb3856799cba33dd67b6879c417a709994..887c6be713a59ec266711512f01e704e5e5199b1 100644
--- a/lib/orient_db/migrations/create_user.rb
+++ b/lib/orient_db/migrations/create_user.rb
@@ -8,6 +8,6 @@ class OrientDb::Migrations::CreateUser < OrientDb::Migration
   end
 
   def down
-    # TODO
+    drop_class 'User'
   end
 end
\ No newline at end of file
diff --git a/lib/tasks/orientdb.rake b/lib/tasks/orientdb.rake
index 55a0dd8c0fb89006e8322bc81a02881e1b757698..a31919ef80a59dd4b91a544e1e3b536492b07d29 100644
--- a/lib/tasks/orientdb.rake
+++ b/lib/tasks/orientdb.rake
@@ -2,12 +2,19 @@ namespace :orientdb do
   desc "Orient DB integration tasks"
 
   task migrate: :environment do
-    desc "Migrate orient db schema"
+    desc "Migrate OrientDB schema"
 
     migrations = OrientDb::Migrations.new(OrientDb::Client.instance)
     migrations.run
   end
 
+  task drop: :environment do
+    desc "Drop OrientDB schema"
+
+    migrations = OrientDb::Migrations.new(OrientDb::Client.instance)
+    migrations.drop
+  end
+
   task create_learning_object_relations: :environment do
     desc "Create LearningObject relations based on its metadata"