在操作系统为Ubuntu20.04的Linux服务器上部署在本地服务器上的Django项目时,需要输入迁移命令"python manage.py makemigrations"在本地创建数据库(此前已经将项目文件通过ftp上传至服务器),但是运行该命令时出现“No changes detected”,进入MySQL查找数据库也没有创建好的表格信息。
在网上搜索相关报错,把命令改为python manage.py makemigrations + "app名称",还是一样显示”no changes“。
后来想了一下可能是和app文件夹下已经存在初始化的文件(原来在本地服务器生成的)有关,导致系统认为已经完成了数据库表格的初始化,但实际在远程服务器的数据库上并不存在该表格。所以解决的方法就是把migrations文件夹下的初始化文件删掉。
在项目文件夹下打开终端运行:
cd app01 #这里的app01要替换为自己的app名称
cd migrations #进入migrations文件夹
ls #显示app文件夹下存在的文件
像上图中0001,0002开头的文件显然就是初始化的文件,把它们删掉留下__init__.py、__pycache__文件即可。
运行删除命令:
rm 0001_initial.py 0002_auto_20230713_0830.py
删除后再次运行python manage.py makemigrations和python manage.py migrate
OK,成功解决!