Advertisement
madrahimov

Untitled

Apr 14th, 2016
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 2.09 KB | None | 0 0
  1. 1 - Выполняем скрипт удаления дубликатов номеров, символов, пробелов с номера. оставляем в номере только цифры
  2.   # в модели client.rb сначала отключаем
  3.   # after_save :remove_sync_objects
  4.   # добавляем в модель проверки на только цифры, gem strip_attributes
  5.   # strip_attributes :only => [:phone], :regex => /[^0-9]/
  6.  
  7.   clients = Client.all
  8.   clients.each do |client|
  9.     phone = StripAttributes.strip(client.phone, :regex => /[^0-9]/)
  10.     email = client.email.to_s.downcase
  11.     unless phone.blank?
  12.       other_clients_with_phone = Client.where(phone: phone)
  13.       if other_clients_with_phone.exists?
  14.         other_clients_with_phone.update_all(phone: '')
  15.       end
  16.     end
  17.     client.phone = phone
  18.     client.email = email
  19.     if !client.valid?
  20.       client.email = ''
  21.     end
  22.     client.save!
  23.   end
  24.  
  25.   # в модели включаем
  26.   # after_save :remove_sync_objects
  27.  
  28. 2 - добавляем в базе уникальность по номеру
  29.   # добавляем в модель уникальность по номеру
  30.   # validates :phone, :uniqueness => true, unless: Proc.new { |b| b.phone.blank? }
  31. 3 - Добавляем новое поле в таблицу client_restaurants, в базе clients
  32.   ALTER TABLE restaurant.client_restaurants ADD COLUMN referal_client_id uuid;
  33.  
  34.   Изменяем foreign таблицы в основных базах
  35.   DROP FOREIGN TABLE restaurant.client_restaurants;
  36.   CREATE FOREIGN TABLE restaurant.client_restaurants (
  37.       id uuid NOT NULL,
  38.       client_id uuid NOT NULL,
  39.       restaurant_id uuid NOT NULL,
  40.       created_at timestamp without time zone,
  41.       updated_at timestamp without time zone,
  42.       is_active boolean DEFAULT true,
  43.       deposit numeric(15,4) NOT NULL DEFAULT 0,
  44.       is_ignored boolean NOT NULL DEFAULT false,
  45.       from_restaurant_id uuid,
  46.       referal_client_id uuid
  47.    ) SERVER clients_server OPTIONS ( table_name 'restaurant.client_restaurants' );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement