From 8958fe8d632e2f95226c4990bab11111ff9b033f Mon Sep 17 00:00:00 2001 From: Israel Barreto Sant'Anna <ibsa14@inf.ufpr.br> Date: Wed, 30 Sep 2015 09:22:12 -0300 Subject: [PATCH] down methods implemented on migration classes and drop task created Signed-off-by: Israel Barreto Sant'Anna <ibsa14@inf.ufpr.br> --- config/orientdb.yml | 2 +- lib/orient_db/migration.rb | 8 ++++++++ lib/orient_db/migrations.rb | 11 +++++++---- lib/orient_db/migrations/create_attribute.rb | 2 +- lib/orient_db/migrations/create_belongs_to.rb | 2 +- lib/orient_db/migrations/create_collection.rb | 2 +- lib/orient_db/migrations/create_comment.rb | 2 +- lib/orient_db/migrations/create_commented_by.rb | 2 +- lib/orient_db/migrations/create_comments.rb | 2 +- lib/orient_db/migrations/create_has_attr.rb | 2 +- lib/orient_db/migrations/create_institution.rb | 2 +- lib/orient_db/migrations/create_is_about.rb | 2 +- lib/orient_db/migrations/create_learning_object.rb | 2 +- lib/orient_db/migrations/create_like.rb | 2 +- lib/orient_db/migrations/create_main_page.rb | 2 +- lib/orient_db/migrations/create_object.rb | 2 +- lib/orient_db/migrations/create_published_by.rb | 2 +- lib/orient_db/migrations/create_subject.rb | 2 +- lib/orient_db/migrations/create_user.rb | 2 +- lib/tasks/orientdb.rake | 9 ++++++++- 20 files changed, 40 insertions(+), 22 deletions(-) diff --git a/config/orientdb.yml b/config/orientdb.yml index 07945002..7c25a5c8 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 12d0f8a5..0d282d31 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 056a5779..debed17e 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 0e9b333f..db0de647 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 4552941b..6ceff5b0 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 cc9e6fc2..20347685 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 8fa4307b..a53be2dd 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 9d2c1db1..c3551562 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 03235483..adc6b6d5 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 40a4ce4b..7a7613c5 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 1f8b50cf..2c23aa48 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 3c3b0254..242fc251 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 f8dea7b1..194fedb4 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 e66f0625..5bbb2bff 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 6756abb2..bdcbc099 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 27f49c3c..d25a6d96 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 99973157..07df1d07 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 4e680a59..cee8e817 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 248027eb..887c6be7 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 55a0dd8c..a31919ef 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" -- GitLab