Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 1 - Выполняем скрипт удаления дубликатов номеров, символов, пробелов с номера. оставляем в номере только цифры
- # в модели client.rb сначала отключаем
- # after_save :remove_sync_objects
- # добавляем в модель проверки на только цифры, gem strip_attributes
- # strip_attributes :only => [:phone], :regex => /[^0-9]/
- clients = Client.all
- clients.each do |client|
- phone = StripAttributes.strip(client.phone, :regex => /[^0-9]/)
- email = client.email.to_s.downcase
- unless phone.blank?
- other_clients_with_phone = Client.where(phone: phone)
- if other_clients_with_phone.exists?
- other_clients_with_phone.update_all(phone: '')
- end
- end
- client.phone = phone
- client.email = email
- if !client.valid?
- client.email = ''
- end
- client.save!
- end
- # в модели включаем
- # after_save :remove_sync_objects
- 2 - добавляем в базе уникальность по номеру
- # добавляем в модель уникальность по номеру
- # validates :phone, :uniqueness => true, unless: Proc.new { |b| b.phone.blank? }
- 3 - Добавляем новое поле в таблицу client_restaurants, в базе clients
- ALTER TABLE restaurant.client_restaurants ADD COLUMN referal_client_id uuid;
- Изменяем foreign таблицы в основных базах
- DROP FOREIGN TABLE restaurant.client_restaurants;
- CREATE FOREIGN TABLE restaurant.client_restaurants (
- id uuid NOT NULL,
- client_id uuid NOT NULL,
- restaurant_id uuid NOT NULL,
- created_at timestamp without time zone,
- updated_at timestamp without time zone,
- is_active boolean DEFAULT true,
- deposit numeric(15,4) NOT NULL DEFAULT 0,
- is_ignored boolean NOT NULL DEFAULT false,
- from_restaurant_id uuid,
- referal_client_id uuid
- ) SERVER clients_server OPTIONS ( table_name 'restaurant.client_restaurants' );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement