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"