@proRuby

Страница 398 из 1594
Tim
25.01.2017
09:11:58
ну я создаю с domain: ''

так что не в дефолте дело

I
25.01.2017
09:12:26
посмотри на индекс в базе самой

Tim
25.01.2017
09:13:01
char_length(text) != 0, на крайняк, попробуй)
тоже не работает. такое чувство, что эта partial фигня просто дает сбой

Google
I
25.01.2017
09:13:14
вот я и говорю, надо на сам индекс в базе глянуть

Tim
25.01.2017
09:14:29
CREATE UNIQUE INDEX index_stores_on_domain ON "1".stores USING btree (domain COLLATE pg_catalog."default");

I
25.01.2017
09:14:54
Ну и все, не сработал where

Tim
25.01.2017
09:31:57
никто с partial index не работал? что-то ваще не могу найти в чем проблема

походу придётся sql прям в миграции писать

а как работает validates :x, uniqueness: true?

если я уберу unique: true с индекса, то всё обязательно порушится? можно рассчитывать на валидатор рельс?

Adamtsov
25.01.2017
09:40:08
uniqueness делает exists запрос

Tim
25.01.2017
09:46:41
сделал миграцию change_column :stores, :domain, :string, limit: 32, default: '', null: false remove_index :stores, :domain add_index :stores, :domain, name: 'index_stores_on_domain', unique: false валидатор validates :domain, length: { minimum: 4, maximum: 32 }, uniqueness: true, allow_blank: true но все равно при попытке создания двух store с пустыми domain возникает эксэпшн: ActiveRecord::RecordNotUnique: PG::UniqueViolation: ERROR: duplicate key value violates unique constraint "index_stores_on_domain" DETAIL: Key (domain)=() already exists. что за пиздус?

allow_blank должен не валидейтить пустые строки. да и на стороне базы данных ошибка похоже

может её надо как-то рестартнуть? почему она меня не слушается?

Alexander
25.01.2017
09:54:50
Видимо у тебя 2 записи в таблице с '' вот и ошибка

allow_blank не видит или тп

Google
Tim
25.01.2017
09:55:15
я как раз хочу чтобы можно было создать две такие записи

Alexander
25.01.2017
09:55:58
в pg на сколько знаю уникальное поле - оно уникальное, на зависимо от того что там лежит, такого же быть не должно

Tim
25.01.2017
09:56:19
я убрал уникальность с индекса и с колонки

вернее на колонке не написал ничего, а на индексе явно указал что не уникальное

Alexander
25.01.2017
09:56:57
если бы убрал, ошибки не было

Tim
25.01.2017
09:57:11
я миграцию выше написал

Alexander
25.01.2017
09:57:28
index_stores_on_domain посмотри этот индекс, удалить попробуй его

на прямую в базе

Tim
25.01.2017
09:58:03
и зачем?

Alexander
25.01.2017
09:58:05
пересоздай его

Tim
25.01.2017
09:58:19
я его в миграции каждый раз пересоздаю

уже миграций 10 мб написал, просто на ровном месте проблемы

Ivan
25.01.2017
09:59:30
очень интересная статья https://crystal-lang.org/2017/01/06/the-charly-programming-language.html

Alexander
25.01.2017
10:00:51
ты же знаешь почему эта ошибка лезет?

Tim
25.01.2017
10:00:56
может есть какая-то скрытая constraint, которую я не могу найти?

Alexander
25.01.2017
10:01:13
по моему ты усложняешь сейчас

Tim
25.01.2017
10:01:18
я знаю, он пытается заставить все domain быть уникальными

я ему говорю, чувак, мне не надо уникальные domain

он говорит, иди нахуй

Alexander
25.01.2017
10:02:17
так, это ты через рельсы все делаешь, а пробовал на прямую посмотреть что у тебя там происходит?

Google
Tim
25.01.2017
10:02:54
я заглянул в таблицу, там вот что в этом индексе написано: CREATE UNIQUE INDEX index_stores_on_domain ON "1".stores USING btree (domain COLLATE pg_catalog."default");

может это бинарное дерево заставляет быть индексы уникальными?

и внутри него есть ограничение

I
25.01.2017
10:03:38
да не делаешь ты своего where тут

я тебе вот о чем

Tim
25.01.2017
10:03:50
хотя бин дерево позволяет одинаковые ключи

I
25.01.2017
10:03:52
попробуй запрос свой изменить

Tim
25.01.2017
10:03:58
я уже отчаялся вписать where

я теперь просто убираю uniqueness

но даже это не получается

I
25.01.2017
10:04:22
напиши запрос на создание индекса руками

Tim
25.01.2017
10:04:59
у меня мультитенантное приложение, тут обосраться можно

Tim
25.01.2017
10:05:14
хотя если знать название текущей бд то нет

как узнать название?

I
25.01.2017
10:05:36
что(

Tim
25.01.2017
10:05:55
ладно, это не важно

babysitter
25.01.2017
10:06:03
гайз, сам не люблю новичков, все понимаю, один вопрос задам и больше не побеспокою. с помощью рвм пытаюсь завести очень старый проект на 1.8.7 так вот версия рубигемс гвоздями прибита к версии руби? то есть мне нужна версия rubygems 1.8.7? сейчас gem —version выдает 2.0.17, а это что-то слишком свежо

I
25.01.2017
10:06:22
CREATE UNIQUE INDEX index_stores_on_domain ON "1".stores WHERE char_length(domain) > 0 USING btree (domain COLLATE pg_catalog."default");

Tim
25.01.2017
10:06:50
короче там надо ещё прописывать ON "2", "3" и т.д.

Google
babysitter
25.01.2017
10:07:36
поставить то не проблема

Tim
25.01.2017
10:07:51
а, там даже не поменялось ниче походу лол

щас присмотрелся

I
25.01.2017
10:07:57
там не рубигемс к версии руби прибита

там гемы сделаны под определенную версию рубигемс были

ну, там было окно совместимостей

сильно большой проект?

babysitter
25.01.2017
10:10:08
нет, этот совсем маленький. один раз поднимал рельсовый, так там ощутил всю боль версий гемов. сам в руби мало понимаю.

Admin
ERROR: S client not available

babysitter
25.01.2017
10:10:40
думаю, что все нормально будет. спасибо за информацию

Tim
25.01.2017
10:10:56
как написать такую миграцию учитывая это?

I
25.01.2017
10:13:11
перебирай схемы просто и создавай запрос и потом его выполняй)

типа [:a,:b,:c].map{|scheme| тут_запрос}.join(';')

и выполняешь его

Tim
25.01.2017
10:16:10
попробовал сделать миграцию только с удалением... и она не работает

чё за ёбаный пиздец

кошмарный сон какой-то

хотя в schema.rb он удалился

I
25.01.2017
10:17:01
а сама миграция что сказала?

Google
Tim
25.01.2017
10:17:16
все было ок

— remove_index(:stores, :domain) -> 0.0018s

но в самой базе эти блядские индексы присутствуют

мб надо по имени удалять

короче всё норм работает, но для этого надо было потрахаться и вручную поудалять индексы.. хз как это на продакшене будет работать

Amir
25.01.2017
12:51:05
Подскажите ребята Как правильно обычно делают такую задачу Есть RabbitMQ есть слушатель, его задача обработать очередь на 100% т.е. во время обработки происходит ошибка, и уже нет смысла идти дальше обработать по очереди а надо дождаться некоторое время например воркер данные тянет из веб сервиса, а веб сервис часто бывает что становиться не доступен, на некоторое время надо чтобы воркер подождал 5 минут, и сделал попытку снова и продолжил работу

Tim
25.01.2017
13:27:22
можно ли как-нибудь быстро узнавать сколько записей в таблице?

Store.count который Store.all.count выглядят медленными

I
25.01.2017
13:27:44
count только

Alex
25.01.2017
13:27:46
Post.count?

Tim
25.01.2017
13:27:53
((

Alex
25.01.2017
13:27:56
плюс кэш каунтер можно прикрутить

Tim
25.01.2017
13:28:04
вернее, мне надо узнать, пустая ли таблица

Alex
25.01.2017
13:28:06
Чтобы не лохануться как в том приколе от твиттера

I
25.01.2017
13:28:19
пустая ли - any

Tim
25.01.2017
13:28:38
пустая ли - any
а как оно работает?

Alex
25.01.2017
13:29:08
http://crestcode.com/how-to-check-if-a-table-is-empty-in-rails/

I
25.01.2017
13:31:06
User.empty? тоже проканает

Alexander
25.01.2017
13:32:45
а как оно работает?
сорцы смотри

Alex
25.01.2017
13:33:27
Век живи - век учись. Правда не было кейсов когда нужно проверить что таблица пустая.

Страница 398 из 1594