diff options
| -rw-r--r-- | app/models/referential.rb | 5 | ||||
| -rw-r--r-- | lib/af83/schema_cloner.rb | 12 |
2 files changed, 10 insertions, 7 deletions
diff --git a/app/models/referential.rb b/app/models/referential.rb index 824320c27..22bfe0d25 100644 --- a/app/models/referential.rb +++ b/app/models/referential.rb @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- class Referential < ActiveRecord::Base include DataFormatEnumerations @@ -180,7 +179,7 @@ class Referential < ActiveRecord::Base before_validation :assign_line_and_stop_area_referential, :on => :create, if: :workbench, unless: :created_from before_validation :clone_associations, :on => :create, if: :created_from - before_create :create_schema + before_create :create_schema, unless: :created_from after_create :clone_schema, if: :created_from @@ -282,7 +281,7 @@ class Referential < ActiveRecord::Base end def clone_schema - ReferentialCloning.create(source_referential: self.created_from, target_referential: self) + ReferentialCloning.create(source_referential: created_from, target_referential: self) end def create_schema diff --git a/lib/af83/schema_cloner.rb b/lib/af83/schema_cloner.rb index 40c04f400..6ffb646f3 100644 --- a/lib/af83/schema_cloner.rb +++ b/lib/af83/schema_cloner.rb @@ -46,10 +46,8 @@ module AF83 end def assure_schema_preconditons - raise RuntimeError, "Target Schema #{target_schema} does already exist" unless - execute("SELECT oid FROM pg_namespace WHERE nspname = '#{target_schema}' LIMIT 1").empty? - raise RuntimeError, "Source Schema #{source_schema} does not exist" unless source + log 'found', source end def clone_foreign_key fk_desc @@ -88,7 +86,7 @@ module AF83 adjust_defaults table_name end def create_target_schema - execute("CREATE SCHEMA #{target_schema}") + execute("CREATE SCHEMA IF NOT EXISTS #{target_schema}") clone_sequences clone_tables clone_foreign_keys @@ -121,6 +119,12 @@ module AF83 @target_schema = target_schema end + def log(*messages) + messages.each do | message | + Rails.logger.info "SchemaCloner: #{message.inspect}" + end + end + # # Memvars # ------- |
