Django项目在mysl和sqlite之间变得困惑

时间:2019-05-26 08:40:25

标签: mysql django sqlite digital-ocean

我目前还不确定如何正确表达这个问题,因为到目前为止我的所有搜索都没有结果。基本上,我有一个django项目,该项目在本地PC上运行良好。从那以后,我花了大约一周的时间尝试使用DigitalOcean Droplet(Ubuntu 18.04服务器)进行部署。我在此服务器上创建了一个MySQL实例,并将SQL Workbench连接到该实例,并且工作正常。我还在服务器上创建了一个虚拟环境,并在服务器上创建了一个新项目,目的是在其正常运行后将现有项目文件迁移到该环境中。

现在的问题是,我能够在此项目上创建模型,进行迁移并迁移所有内容(我知道所有这些都在起作用,因为我可以看到在Workbench上填充的表和数据)。然后,我创建了一个超级用户,但是每当我尝试登录/ admin /时,都会出现以下错误:

myClass

还发生了什么,当我尝试使用超级用户帐户登录后,SQLite3 db文件在项目的根文件夹中创建了自己。还需要注意的是,sqlite db文件的所有者为“ www-data”,而项目文件夹中的所有其他文件的所有者均为“ root”。

我浏览了无数选项,将“主机”从127.0.0.1更改为Droplet /服务器IP地址,更改为0.0.0.0,所有这些选项都具有相同的结果。

我已进行了三次检查,我的settings.py文件如下:

no such table: auth_user
Request Method: POST
Request URL:    http://128.xxx.xx.xx/admin/login/?next=/admin/
Django Version: 2.2.1
Exception Type: OperationalError
Exception Value:    
no such table: auth_user
Exception Location: /opt/django_app/venv/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py in execute, line 383
Python Executable:  /opt/django_app/venv/bin/python3
Python Version: 3.6.7
Python Path:    
['/opt/django_app/leneisang',
 '/opt/django_app/venv/bin',
 '/usr/lib/python36.zip',
 '/usr/lib/python3.6',
 '/usr/lib/python3.6/lib-dynload',
 '/opt/django_app/venv/lib/python3.6/site-packages']
Server time:    Sun, 26 May 2019 06:54:40 +0000

1 个答案:

答案 0 :(得分:0)

听起来您仍然同时安装了两个数据库设置。

删除所有数据库。

将数据库设置设置为实际正在侦听的服务器。不要使用0.0.0.0。 MySQL可能默认情况下使用套接字,因此您必须将其设置为使用127.0.0.1,然后告诉django进行相同的操作。

运行迁移。如果它创建了一个新的sqlite文件,那么您错过了一些东西。

解决所有错误,然后再尝试尝试。

创建您的超级用户。

尝试登录。