私はDjangoでSaaSプロジェクトを作成しています。 私はdjango-saas-kitをユーザーサブスクリプションとマルチアカウントの部分に使用することに決めました。DjangoとSaaS。 Djangoサイトごとに別々のデータベースを使用するには?
理想的には、各ユーザーと別のデータベース用に新しいサイトを作成したいと考えています。 サイトフレームワークはこれをサポートしていますか?どのように実装できますか?
ありがとうございました。
私はDjangoでSaaSプロジェクトを作成しています。 私はdjango-saas-kitをユーザーサブスクリプションとマルチアカウントの部分に使用することに決めました。DjangoとSaaS。 Djangoサイトごとに別々のデータベースを使用するには?
理想的には、各ユーザーと別のデータベース用に新しいサイトを作成したいと考えています。 サイトフレームワークはこれをサポートしていますか?どのように実装できますか?
ありがとうございました。
"clients"フォルダとクライアントごとのサブディレクトリを作成する必要があります。各サブディレクトリには、のようなsite_settings.pyファイルを作成します。
import os.path
# import global settings
from settings import *
# this is barely just the name of the client dir, you might want to use that
SITE_NAME = __file__.split('/')[-2]
# this is the directory of the client website
CLIENT_ROOT = os.path.abspath(os.path.dirname(__file__))
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': SITE_NAME,
'USER': SITE_NAME,
'PASSWORD': 'some random password',
}
}
# you might want this too so that each client have his own MEDIA_ROOT
MEDIA_ROOT = os.path.join(CLIENT_ROOT, 'upload')
を次に管理コマンド用のスイッチ--settingsを使用することを忘れないでください。例:
./manage.py syncdb --settings=clients.demo.site_settings
各クライアントに独自の余分なものが必要であることを忘れないでください。
HAYSTACK_WHOOSH_PATH = os.path.join(CLIENT_ROOT, 'whoosh')
またはジャンゴ-zstaskと::
ZTASKD_URL = 'ipc:///tmp/%s_ztask.sock' % SITE_NAME
それともJohnnyCacheとあなたはヒューという音と干し草の山を使用する場合たとえば、あなたはそれがクライアント間で混同されないように、これを追加する必要があります:
JOHNNY_MIDDLEWARE_KEY_PREFIX=SITE_NAME
ありがとうございました。また、ztaskdを使用するための答えを提供したバックグラウンド・タスクに関する質問もありました。私は今セロリを使用しています。それには解決策はありますか?セロリやztaskdのどちらを好きですか教えてください。 – thelinuxer
djkombuをトランスポートに使用する場合、メッセージはデータベースを通過し、競合は発生しません。しかし、私はセロリをよく知りません... – jpic
私は答えませんでした:最初にセロリを試して、それはうまく動作します。しかし、私はdjango-ztaskを試してみました。それは単純な方法以外は基本的な必要性とほぼ同じです。特に、インストールがずっと速く、扱いも少なくて済みます。 – jpic