django-admin dbshel​​l CommandError:您似乎没有安装"sqlite3"程序或在路径上 [英] django-admin dbshell CommandError: You appear not to have the 'sqlite3' program installed or on your path

查看:127
本文介绍了django-admin dbshel​​l CommandError:您似乎没有安装"sqlite3"程序或在路径上的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在django项目中使用了两个sqlite数据库.一个默认值,另一个用于customer_data.

I use two sqlite databases in my django project . One for default and another for customer_data.

这是我的设置.py

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
},

'customers': {
    'NAME': 'customer_data',
    'ENGINE': 'django.db.backends.sqlite3',
    'USER': 'db2',
    'PASSWORD': 'db2password'
}

}

DATABASE_ROUTERS = ['theapp.routers.CustomerRouter',]

这是我的routers.py

This is my routers.py

CustomerRouter类:"路由器,用于控制模型中所有模型上的所有数据库操作身份验证应用程序."def db_for_read(self,model,** hints):"尝试读取身份验证模型转到auth_db."如果model._meta.app_label =='客户':返回"customer_data"不返回

class CustomerRouter: """ 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 == 'customer': return 'customer_data' return None

def db_for_write(self, model, **hints):
    """
    Attempts to write auth models go to auth_db.
    """
    if model._meta.app_label == 'customer':
        return 'customer_data'
    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 == 'customer' or \
       obj2._meta.app_label == 'customer':
       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 == 'customer':
        return db == 'customer_data'
    return None

推荐答案

如错误消息您似乎未安装'sqlite3'程序所示,则需要按顺序安装sqlite3 cli使用 dbshel​​l 命令.

As the error message You appear not to have the 'sqlite3' program installed suggests, you need to install the sqlite3 cli in order to use the dbshell command.

这篇关于django-admin dbshel​​l CommandError:您似乎没有安装"sqlite3"程序或在路径上的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆