Не могу использовать несколько баз данных в моем проекте django - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь использовать две БД для моего проекта django. Первый предназначен для аутентификации и т. Д., Второй должен содержать данные, отправленные пользователем через форму.

Я добавил вторую базу данных в свой файл settings.py , но я получаю ошибки, самая последняя из них - (1146, "Table 'dataset.main_SomeModel' doesn't exist")

Действительно, похоже, что мой проект Django не может взаимодействовать с БД, поскольку там нет таблицы.

Я что-то не так делаю? Может быть, это неправильный способ использовать две БД здесь?

Вот settings.py , второй БД с именем dataset - это тот, который я пытаюсь использовать:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    },
    'dataset': {
        'NAME': 'dataset',
        'ENGINE': 'django.db.backends.mysql',
        'USER': 'root',
        'PASSWORD': 'password goes here'
    }
}

Вот модель:

class SomeModel(models.Model):
    data = models.CharField(max_length=100)
    num = models.Float()

    def save(self): # ALL the signature         
        super(SomeModel, self).save(using='dataset')

А вот и форма:

class DataForm(forms.ModelForm):

    class Meta:
        model = SomeModel
        fields = ("data", "num")

    def save(self, commit=True):
        send = super(DataForm, self).save(commit=False)
        if commit:
            send.save()
        return send

Поскольку я добавил строку using="dataset", не следует ли отправлять данные в dataset db? Или я делаю что-то еще не так? Любой совет приветствуется!

Редактировать : я попытался перенести вторую базу данных, используя manage.py migrate --database="dataset", но получил ошибку The connection dataset doesn't exist

1 Ответ

0 голосов
/ 26 апреля 2019

Вам не хватает цитаты '. Попробуйте это

super(SomeModel, self).save(using='dataset')

Вы можете посмотреть это Multi DB Save

...