Reset pk’s for postgresql after any importing of data with id’s.

This commit is contained in:
Martin Edenhofer 2016-11-25 15:54:13 +01:00
parent 550b963ad0
commit 9489dff71d
5 changed files with 37 additions and 9 deletions

View file

@ -5447,11 +5447,7 @@ Karma::Activity.create_or_update(
) )
# reset primary key sequences # reset primary key sequences
if ActiveRecord::Base.connection_config[:adapter] == 'postgresql' DbHelper.import_post
ActiveRecord::Base.connection.tables.each do |t|
ActiveRecord::Base.connection.reset_pk_sequence!(t)
end
end
# install locales and translations # install locales and translations
Locale.create_if_not_exists( Locale.create_if_not_exists(

View file

@ -146,6 +146,9 @@ returns
} }
} }
# reset primary key sequences
DbHelper.import_post
# remove auto wizard file # remove auto wizard file
FileUtils.rm auto_wizard_file_location FileUtils.rm auto_wizard_file_location

31
lib/db_helper.rb Normal file
View file

@ -0,0 +1,31 @@
# Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/
class DbHelper
=begin
execute post database statements after import (e. g. reset primary key sequences for postgresql)
DbHelper.import_post
or only for certan tables
DbHelper.import_post(table_name)
=end
def self.import_post(table = nil)
return if ActiveRecord::Base.connection_config[:adapter] != 'postgresql'
tables = if table
[table]
else
ActiveRecord::Base.connection.tables
end
tables.each do |t|
ActiveRecord::Base.connection.reset_pk_sequence!(t)
end
end
end

View file

@ -1526,8 +1526,7 @@ module Import::OTRS
# reset primary key sequences # reset primary key sequences
def self._reset_pk(table) def self._reset_pk(table)
return if ActiveRecord::Base.connection_config[:adapter] != 'postgresql' DbHelper.import_post(table)
ActiveRecord::Base.connection.reset_pk_sequence!(table)
end end
# create customers for article # create customers for article

View file

@ -998,8 +998,7 @@ module Import::Zendesk
# reset primary key sequences # reset primary key sequences
def self._reset_pk(table) def self._reset_pk(table)
return if ActiveRecord::Base.connection_config[:adapter] != 'postgresql' DbHelper.import_post(table)
ActiveRecord::Base.connection.reset_pk_sequence!(table)
end end
def get_custom_fields(custom_fields) def get_custom_fields(custom_fields)