Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Mar 27 2015 20:24
    User @listochkin banned @doneck-russia from this room
  • Mar 19 2015 20:58
    User @mr-mig banned @pgr-ru from this room
  • Mar 14 2015 23:15
    User @mr-mig banned @putin-hero from this room
  • Mar 14 2015 22:31
    User @mr-mig banned @stepan-bendera from this room
vedun
@vedun
ясно, просто когда нужно поддерживать разные СУБД включая SQLite то обычно все эти расширения идут лесом
Yuriy Yarosh
@yuriy-yarosh
Эт не расширения - эт часть стандарта.

когда нужно поддерживать разные СУБД

В нормальных проектах люди нормально живут с одной СУБД и потребности её менять не возникает.

vedun
@vedun
ну и скорость разработки сразу падает на порядки когда начинаешь SQL руками писать.
Возможно, я просто не большой знаток SQL и его стандартов :)
Yuriy Yarosh
@yuriy-yarosh

ну и скорость разработки сразу падает на порядки когда начинаешь SQL руками писать.

Почему ?

Есть например тот же DataGrip с автодополнением всего - его хватает в 99% случаев и скорость разработки не особо отличается от той же Java + Hibernate и еже с ним...
vedun
@vedun
для меня это как писать на asm и с++, а почему медленее, наверно потому что вместо однго вызова надо написать большой запрос в виде строки.
Yuriy Yarosh
@yuriy-yarosh
По объёму не сильно отличается в итоге.
В некоторых случаях домены можно переиспользовать и гонять макросы на SQL'e... уже было так %)
vedun
@vedun
это только моё виденье подкреплённое небольшим опытом :)
Yuriy Yarosh
@yuriy-yarosh

В некоторых случаях домены можно переиспользовать и гонять макросы на SQL'e.

Например вот так


CREATE FUNCTION create_last_updated_triggers(VARIADIC "tables" TEXT [])
  RETURNS VOID AS $$
DECLARE
  tbl TEXT;
BEGIN
  FOREACH tbl IN ARRAY "tables"
  LOOP
    EXECUTE format('DROP TRIGGER IF EXISTS %s_last_updated ON %s;',tbl, tbl);
    EXECUTE format('CREATE TRIGGER %s_last_updated BEFORE UPDATE ON %s ' ||
                   'FOR EACH ROW WHEN (OLD.* IS DISTINCT FROM NEW.*) ' ||
                   'EXECUTE PROCEDURE set_last_updated();',tbl, tbl);
  END LOOP;

  RAISE INFO 'Created last_updated triggers on %', "tables";
END;
$$ LANGUAGE plpgsql VOLATILE STRICT;

это только моё виденье подкреплённое небольшим опытом :)

Да, возможно это субъективно... и с моей стороны, т.к. дело привычек.

Большая часть моих познаний SQL'я была взята со стандартной доки PostgreSQL'я переведённой на русский от PostgresPro
Я своих джунов обычно сразу сажу читать эту доку - перевод хороший...
Sameroom
@sameroom-bot
[Dmitry Chirkin] ты слишком необоснованно обобщаешь
[Dmitry Chirkin] я юзают плстгрес, домены, материалайзед вью, fdw, jsonb и sequelize (орм такой) пушо ето просто экономит время
Yuriy Yarosh
@yuriy-yarosh
Просто нет желания обосновывать
Sameroom
@sameroom-bot
[Dmitry Chirkin] если нет желания обосновывать лучше тогда просто помолчать
Yuriy Yarosh
@yuriy-yarosh
Я не юзаю ORM'ы... я сразу делаю GraphQL запрос прямо в базу вместо SQL'я.
Это уж точно быстрее чем писать CRUD прослойки ;)
Sameroom
@sameroom-bot
[Dmitry Chirkin] а как решена проблема с пермишенами?
vedun
@vedun
@yuriy-yarosh используешь какие то расширения которые сразу с graphql работают минуя SQL ?
Yuriy Yarosh
@yuriy-yarosh
@vedun ага, написал модуль на расте.
vedun
@vedun
postgresql ?
Yuriy Yarosh
@yuriy-yarosh

AAA реализован отдельным набором сервисов через AUTHORIZED в SPI.

Да, под PostgreSQL.

vedun
@vedun
ясно, да интересно
Yuriy Yarosh
@yuriy-yarosh
... буду публиковать если не возникнет юридической волокиты
Vladislav (vladknp)
@vladknp
коллеги подскажите пожалйста что я делаю не так https://pastebin.com/BMeFb9cu
Выдает ошибку
Error: Path must be a string without null bytes
vedun
@vedun
я не спец, но возможно надо воткнуть JSON.stringify при создании буфера
Sameroom
@sameroom-bot
[Dmitry Chirkin] во первых new Buffer() - deprecate
[Dmitry Chirkin] во вторых у Buffer.from() нет варианта когда на вход передают обьект
есть варианты:
Buffer.from(array | buffer | arrayBuffer |string | size )
Vladislav (vladknp)
@vladknp

@vedun не помогло :). В таком случае ругается catch TypeError: dest.on is not a function

@sameroom-bot блин, точно ). А как тогда такие вещи делаются? Ок. Пробую

Sameroom
@sameroom-bot
[Dmitry Chirkin] а, вижу там массив массивов а не обьект
[Dmitry Chirkin] шо какбэ подходит под ситуацию Buffer.from(array) но в этом случае ожидается массив октетов
[Dmitry Chirkin] типа так:
// Creates a new Buffer containing UTF-8 bytes of the string 'buffer'
const buf = Buffer.from([0x62, 0x75, 0x66, 0x66, 0x65, 0x72]);
[Dmitry Chirkin] внезапно обнраужилось что и обект можно ) но надо что бы он умел valueOf или Symbol.toPrimitive
[Dmitry Chirkin] кароч, все варианты очень подобно с примерами описаны в доке: https://nodejs.org/api/buffer.html\#buffer_class_method_buffer_from\_array
Vladislav (vladknp)
@vladknp
@sameroom-bot Спасибо за помощь.
Gor Martsen
@Gormartsen
привет всем. Есть желающие присоединится к open source проекту микросервисов? нужна помощь (доки, примеры, сайт, тесты и тп )
n1aba
@n1aba
@Gormartsen привет, есть желающий
Gor Martsen
@Gormartsen
о клас @n1aba - если не против давай в отдельный чат
Vijay
@vijay-uppunuru
@vijay-uppunuru
Hi everyone
How to update multiple documents in a collection with the values from an array preserving the order of updating??
currently the order of values are jumbled
on updating
mongodb
Sameroom
@sameroom-bot
[Dmitry Chirkin] so you asking in nodejs chat how to use mongo or how to write a for loop?
Alexandr
@flor-master
всем привет. есть вопрос не совсем по ноде.
Как правильнее хранить следующую структуру в монге?
например, у меня есть каталог книг, и список жанров. У каждой книги может быть несколько жанров.
Задача - регулярно выбирать случайную книгу из какого то жанра. что то типа, нажал на кнопку "Мне повезет" и получил случайную книгу из выбранного жанра.
Нормально ли будет хранить это таким образом?
сделать коллекцию жанров и сделать коллекцию книг. и в книге хранить список аидишников из жанров?
или есть какой то более удобный способ?
Sameroom
@sameroom-bot
[Dmitry Chirkin] есть, не использовать монгу для реляционных данных
Ivan Zmerzlyi
@DangelZM
@flor-master наверно лучше хранить название жанров в документе книги
Alexandr
@flor-master
@DangelZM что то типа { title: 'some title', genres: {['fairy tale', 'horrors']} } ??
тогда при переименовании жанра прийдется обновлять все записи.