Comments 53
отличная новость. спасибо.
+1
Да просто отличнейшая новость. Вот только, вопрос, можно ли указать базу данных для всей модели, а не при выборке, так же логичнее.
0
Пока только для запросов.
P.S.
Но ведь это только первый коммит :)
поэтому ждём продолжения.
P.S.
Но ведь это только первый коммит :)
поэтому ждём продолжения.
+1
Не только для запросов, вот из документации:
>>> user_obj.save(using='new_users')
>>> user_obj.delete(using='legacy_users')
>>> user_obj.save(using='new_users')
>>> user_obj.delete(using='legacy_users')
0
Это не первый коммит, это вливание целой огромной ветки, которая разрабатывалась Alex-ом Gaynor-ом и другими людьми около полугода.
0
Была возможность указать через Meta, но убрали (по-моему так правильно). Т.к. для жестко для модели указывать базу как раз не логично — это не будет работать с идеологией reusable apps.
+1
reusable apps в жанге — миф
-9
Почему же?
0
потому что их нет
-9
Ну теоретически написать такие не представляет труда. Практически же, я не вижу им применения как такового :)
0
На джанго все настолько просто и быстро пишется, что иногда проще написать с нуля :)
+2
Суровые сибирские мужики чуть не подавились чаем от удивления. Их уже столько написано, что всех и не запомнить, а их, оказывается, нет.
+2
ты не прав
+1
Согласен. auth приходится подпатчивать, есть написаные мной же аппы (например те же коменты) которых нельзя было сыскать раньше. Но назвать их реюзабельными не могу, так как при использовании в новых проектах что-то приходится переписывать/дописывать. Да и джанга меняется, что по хорошему надо все время апдейтить код, чтобы он был актуален.
0
UFO just landed and posted this here
Ну, конечно можно. Менеджер просто переопределите — и все.
0
я, наверное чего-то не понимаю, но, имхо, каждый второй самопальный фреймворчатый велосипед умеет работать с несколькими БД одновременно. Где подвох?
-4
Можно ссылочки посмотреть?
0
pylons и его модели, например
0
Это как бы не «каждый второй самопальный фрейворчатый велосипед». А вполне себе «взрослый» проект.
+1
ну тогда куда ни плюнь, везде будет «взрослый», начиная с webpy.
но обсуждаемая возможность была одной из эээ «особенностей» Django, тех, что бесили. одна из тех, из-за которых лично я с нее ушел.
«все кругом умеют к нескольким базам, одна django сама умная» (с)
но обсуждаемая возможность была одной из эээ «особенностей» Django, тех, что бесили. одна из тех, из-за которых лично я с нее ушел.
«все кругом умеют к нескольким базам, одна django сама умная» (с)
-3
> лично я с нее ушел.
На куда? :-)
На куда? :-)
0
на много куда. в том числе на выше упомянуто :)
-1
вот умеют же люди мысль сформулировать :)
0
и давай минусовать, ага.
0
Ну а теперь и Джанго может. Что вам не нравится? :)
+7
А вы хоть пробовали сделать то, что написано в документации? мм?
Там как минимум 2 ошибки в 1 строке.
Бэкенд указывается вот так:
'ENGINE': 'django.db.backends.postgresql_psycopg2'
Там как минимум 2 ошибки в 1 строке.
Бэкенд указывается вот так:
'ENGINE': 'django.db.backends.postgresql_psycopg2'
+1
Наконец-то исправили: code.djangoproject.com/changeset/11982
0
Было-бы хорошо еще иметь возможность указать что такая-то модель(или даже целый аппликейшн) должны работать через недефолтный бекенд (Естественно не в model.Meta а где-нить в специальном месте)
0
Хех!… Как только отступы не навязываются синтаксически, питонисты точас же на них забивают:
# in settings.py:
DATABASES = {
'default': {
'NAME': 'app_data',
'BACKEND': 'django.db.backends.postgres_psycopg2',
'USER': 'postgres_user',
'PASSWORD': 's3krit'
},
'users': {
'NAME': 'user_data'
'BACKEND': 'django.db.backends.mysql',
'USER': 'mysql_user',
'PASSWORD': 'priv4te'
}
}
P. S. А после «'NAME': 'user_data'
» нужна запятая. :-)-1
Друзья, я не особо в претензии, но автор данного текста я, а посте об этом не сказано. Что делают в подобных ситуациях?
+2
Посылают луч поноса.
+2
Я бы не признался ;-)
+1
Пишут коммент. Автор советуется с совестью и либо апдейтит пост, либо ХОДИТ КАК ПАДЛА ОПЛЕВАНЫЙ ВСЮ СВОЮ НИЧТОЖНУЮ НИКЧЕМНУЮ ЖИЗНЬ!!11 Как-то так.
Все правильно сделал (ц)
Все правильно сделал (ц)
0
так нету текста же
+1
Да, в следующий раз, с прицелом на то, что пост «возьмут» на хабр буду писать его по всем канонам местного сообщества :).
+1
тоесть нужно было у тебя спросить разрешения чтобы всех поздравить?
-1
Дурень, это я всех и поздравил, а некто shestera нажал ctrl+C, ctrl+V. Причем, реально не добавил даже пропущенной запятой.
0
сам дура
-3
Что в твоём тексте было такого уникального, что не было написано официальном сайте?
это? «Поздравляю всех с этой новой фичей, мы давно ждали такой функциональности. Ура!»
это? «Поздравляю всех с этой новой фичей, мы давно ждали такой функциональности. Ура!»
0
Верно, в тексте не было ничего уникального, но он был написан мной, у меня в блоге. Вы, друг мой, скопировали его, но не указали ссылку. Ещё раз повторю, я не в претензии, а просто пытаюсь понять как на хабре обстоят дела с обратными ссылками на захабренные материалы.
Собственно, все, что хотел узнал. Ваши комментарии излишне.
Посылаю Вам луч поноса :)
Собственно, все, что хотел узнал. Ваши комментарии излишне.
Посылаю Вам луч поноса :)
0
Как-то давно был проект, в котором надо было использовать субдомены, на каждый из которых своя база, при одном инстансе джанги. Пришлось вплотную ознакомиться с кверисетом и вечно блуждающей глобальной переменной connection, топорным кешированием и коммитом транзакции. Пошел читать исходник джанги — надеюсь там хоть немного прибрались в свете этого радостного события!
0
А как было бы правильно кешировать?
0
Правильно — структурно, чтобы дать возможность для хуков. Раз уж есть бекенд, что подразумевает заменяемость функционала, то использование глобальных переменных или недоступного извне кеша, который влияет на заменяемость этого функционала — признак плохого дизайна.
0
Sign up to leave a comment.
Django multiple database support — теперь поддерживает множественные соединения с базами данных