0

任何人都可以帮助我。

起初,我为我的 APP 创建了一个 sqlite DB,但现在需要将其迁移到 MYSQL。

在 SQLITE 中一切正常,但是当我迁移到 MYSQL 时,它并没有创建表。

提前感谢那些愿意提供帮助的人。


模型.py

from django.db import models

class sslDomain(models.Model):
    domain = models.CharField(max_length=20, default='')
    expiration = models.TextField(max_length=50, default='')
    date_now = models.TextField(max_length=50, default='')
    status = models.IntegerField(max_length=50, default=0)
    daysleft = models.TextField(max_length=50, default='')

    def __str__(self):
        return self.domain

class logsTable(models.Model):
    logs_field = models.TextField(max_length=100, default='')

    def ___str__(self):
        return self.id

auth_db.py(我的 DBrouter)

from .apps import *

class AuthSslDB:
    """
    A router to control all database operations on models in the
    auth application.
    """
    def db_for_read(self, model, **hints):
        """
        Attempts to read auth models go to auth_db.
        """
        if model._meta.app_label == SsldomainsConfig.name:
            return 'argus_v2_db'
        return None

    def db_for_write(self, model, **hints):
        """
        Attempts to write auth models go to auth_db.
        """
        if model._meta.app_label == SsldomainsConfig.name:
            return 'argus_v2_db'
        return None

    def allow_relation(self, obj1, obj2, **hints):
        """
        Allow relations if a model in the auth app is involved.
        """
        if obj1._meta.app_label == SsldomainsConfig.name or \
           obj2._meta.app_label == SsldomainsConfig.name:
           return True
        return None

    def allow_migrate(self, db, app_label, model_name=None, **hints):
        """
        Make sure the auth app only appears in the 'auth_db'
        database.
        """
        if app_label == SsldomainsConfig:
            return db == 'argus_v2_db'
        return None

设置.py

'argus_v2_db': {
    'ENGINE': 'django.db.backends.mysql',
    'NAME': 'argus_v2',
    'USER': 'yrollrei',
    'PASSWORD': '****',
    'HOST': '*.*.*.*',
    'PORT': '*',
}

DATABASE_ROUTERS = ['SSLDOMAINS.auth_db.AuthSslDB']
4

1 回答 1

0

我只是注意到,如果我创建不是来自 sqlite 的新表,它就可以工作。

我的问题通过在models.py中克隆我的类来解决,我只是重命名了它。

希望它适用于其他有同样问题的人。

于 2020-02-05T17:16:33.317 回答