aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/models/referential.rb5
-rw-r--r--lib/af83/schema_cloner.rb12
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
# -------