@pydjango

Страница 988 из 1273
Massimo
21.02.2018
10:36:34
Что с вином то?

Massimo
21.02.2018
10:38:08
Хмм

Google
Massimo
21.02.2018
10:38:12
А ведь кстати не так

У меня 1с на удаленке стоит

мне нужно просто прогу для подключения к удаленке скачать

Massimo
21.02.2018
10:44:13
https://dpaste.de/gR1q Подскажите, я жсоном отправляю инфу и он должен сначала вносить des_from а затем des_to но он упорно вносит сначала des_to

что я делаю не так?

Dan
21.02.2018
10:46:14
кто вносит ?

Massimo
21.02.2018
10:47:05
кто вносит ?
Вношу через форму

Dan
21.02.2018
10:47:18
отправляешь на сервер

Massimo
21.02.2018
10:47:47
На сервере все норм он то dict то присылает в норме

Artem
21.02.2018
10:47:51
des_from = Destination.objects.get(pk=obj.des_from_id) des_to = Destination.objects.get(pk=obj.des_to_id) а это можно покрасивше переписать

Google
Artem
21.02.2018
10:51:38
des_from_id des = Destination.objects.only('name').filter(pk__in=[obj.des_from_id, obj.desto_id]).all() for de in des: if de.pk == obj.des_from_id: des_from = de.pk elif de.pk == obj.des_to_id: des_to = de.pk

Massimo
21.02.2018
10:52:42
Но не красивее

Красиво - когда очень мало

Artem
21.02.2018
10:53:14
но зато в один запрос

и возьмет только два поля: id, name

Massimo
21.02.2018
11:02:38
Ну у меня не гранд проект что запросы должны быть маленькими, но я согласен, что твоя версия граммотней

Rookie
21.02.2018
11:07:37
Ребята, динамически создаваемый словарь баз данных для settings - это же вполне нормально?

Anton
21.02.2018
11:08:54
Всем привет. Вопрос такой: как в Django CMS работает тег static_placeholder? Я думал, это что-то вроде include, но не могу нигде найти, собственно, сам html-файл

Rookie
21.02.2018
11:09:53
в смысле ?
import dj_database_url MASTER = "postgres://db_user:db_pass@123.45.67.8:6432/нbase" SLAVES = ("postgres://db_user:db_pass@123.45.67.8:6432/base", "postgres://db_user:db_pass@123.45.67.8:6432/base",) def set_database_list(): db_list = {'slave_%d' % i: dj_database_url.config( env='DATABASE_URL', default=j, conn_max_age=500) for i, j in enumerate(SLAVES, start=1)} db_list.update( {'default': {}, 'master': dj_database_url.config(env='DATABASE_URL', default=MASTER, conn_max_age=500)}) return db_list

Rookie
21.02.2018
11:13:04
это вполне круто, djurldatabase так и делает
Я перед запуском uwsgi собираю словарь из файла, в котором хранятся данные о мастере и слейвах. Данные могут меняться, потому что в случае падения мастера у меня настроено, что после того, как слейв занял место мастера он башскриптом создаёт новый список серверов, шлёт на все узлы и перезапускаает приложения. Я придумал только так. Это не сильно упорото?

То есть, в итоге в сеттингах я имею DATABASES = set_database_list()

Rookie
21.02.2018
11:16:13
с другой стороны, секурней будет файлик с chmod
Да он на 750 и доступ на ключах только. В path - не знаю. Мб ты прав. Я про реализацию с джангой, так можно же?

Artem
21.02.2018
11:16:27
Ааааааа...

Google
Artem
21.02.2018
11:16:35
да, но такая шняга не прокатит

Rookie
21.02.2018
11:16:46
Почему?

Я запустил щас, работает

Artem
21.02.2018
11:17:14


по дефолту, жанга принимает

где 'default', для обращения черещ .using(*arg)

а тебе надо использовать слейвы

Rookie
21.02.2018
11:18:02
по дефолту, жанга принимает
Да. dj_database_url.config распакует это именно так. Посмари функцию.

Artem
21.02.2018
11:18:11
посему, тебе надо расширить DATABASE_DRIVER

https://docs.djangoproject.com/en/2.0/topics/db/multi-db/

вот почитай

конкретно методы: db_for_read(model, **hints)¶ db_for_write(model, **hints)¶

Artem
21.02.2018
11:19:05
и другие

Rookie
21.02.2018
11:19:30
посему, тебе надо расширить DATABASE_DRIVER
А, ты про это. Не. Это не нужно. У меня джанга тут не участвует. Это есть. Это роутеры, они лежат не тут у меня.

Artem
21.02.2018
11:19:59
или у тебя мастер сам разруливает?

или шо

Rookie
21.02.2018
11:21:37
или у тебя мастер сам разруливает?
Почему. У меня роутер джанговский есть. Но он просто показывает джанге куда писать, и откуда читать. Остальное сделано средствами постгри. Тут роутер джанги мне нужен только для того, чтобы джанга не начала писать в слейв, и всё.

Artem
21.02.2018
11:22:06
Аааа... ну а так, во всем остальном нормально все

Rookie
21.02.2018
11:22:58
Аааа... ну а так, во всем остальном нормально все
Угу. Меня просто интересовала деталь. Можно ли не писать статичный dict database.

Artem
21.02.2018
11:23:13
да там как угодно вообще!

Google
Artem
21.02.2018
11:23:23
хоть из коллекции собирай

Rookie
21.02.2018
11:23:46
Ну и ок) Пойду дальше хуевертить)

Artem
21.02.2018
11:23:49
вот только что бы оно на "лету" принимала измеения, вот это иинтереснее

Rookie
21.02.2018
11:24:21
Artem
21.02.2018
11:24:23
хотя, крутить парочку докеров, и незаметно релоадить с новыми роутами для слейвов и вообще по красоте!

Massimo
21.02.2018
11:25:00
А зачем вообще это делать?

Artem
21.02.2018
11:25:11
дохера серваков под базу!

Massimo
21.02.2018
11:25:33
Ого пахнет Мега проектом)

Artem
21.02.2018
11:25:36
хотя да, зачем!? у тебя сотни миллионов записей? или в качестве серверов пеньки 4?

Admin
ERROR: S client not available

Rookie
21.02.2018
11:25:44
А зачем вообще это делать?
Автовосстановления без остановки работы

Massimo
21.02.2018
11:26:29
Автовосстановления без остановки работы
То есть ты другую бд переводишь бэк пока востанавливается другая бд?

Rookie
21.02.2018
11:26:46
хотя да, зачем!? у тебя сотни миллионов записей? или в качестве серверов пеньки 4?
Упал мастер. Слейв сам встал на его место, отписался всем приложениям об изменениях, перезапустил службы.

Artem
21.02.2018
11:26:47
То есть ты другую бд переводишь бэк пока востанавливается другая бд?
они в реалтайме синхронизируются сами собой с мастером

Rookie
21.02.2018
11:27:28
То есть ты другую бд переводишь бэк пока востанавливается другая бд?
Не я. Оно само. В этом соль. Я просто получаю сообщение, и иду смотреть.

Massimo
21.02.2018
11:27:29
А потом слейв синхронитт мастера когда тот встал?

Rookie
21.02.2018
11:27:43
Artem
21.02.2018
11:27:57
мы с 1 слейвом жили вполне хорошо

Google
Artem
21.02.2018
11:27:59
всегда копия

и та, реплика

на read-only

Rookie
21.02.2018
11:28:39
мы с 1 слейвом жили вполне хорошо
У пал мастер. Слейв встал на его место. Мастер лежит. Куда идут реплики?

Rookie
21.02.2018
11:28:55
на read-only
Реплики всегда ро

нахуй )
Ееееееееее))

Artem
21.02.2018
11:29:23
убедил!

Massimo
21.02.2018
11:29:42
Реплики слейва?

Artem
21.02.2018
11:29:51
слейв == реплика

Massimo
21.02.2018
11:29:53
А если еще и оба слейва упали?

Rookie
21.02.2018
11:30:09
Реплики слейва?
Мастера. WAL записи от мастера на все слейвы.

Massimo
21.02.2018
11:30:19
Мастер же лежит

Artem
21.02.2018
11:30:26
ну тогда поа начинать молиться

Rookie
21.02.2018
11:30:39
А если еще и оба слейва упали?
Клёво) И все сервера приложений и война ещё)

Massimo
21.02.2018
11:30:41
Artem
21.02.2018
11:30:46
Мастера. WAL записи от мастера на все слейвы.
можно вообще xlog пробрасывать сразу на реплики

Так тыж невереующий
псссссс))) ты меня палишь!

Massimo
21.02.2018
11:31:11
Вот именно поэтому я мастер православный и в слейвах еще парочку религий, чтобы молиться можно было любому богу

Если первый упадет)))0

Rookie
21.02.2018
11:31:39
можно вообще xlog пробрасывать сразу на реплики
Зачем? Этож встроенные функции бд. Нахуй городить то?

Massimo
21.02.2018
11:31:43
Слейвы же на разных серверах?

Rookie
21.02.2018
11:31:53
Ага

Страница 988 из 1273