&引用;python manage.py syncdb“;不创建表
我第一次跑步&引用;python manage.py syncdb“;不创建表,python,django,Python,Django,我第一次跑步 python manage.py syncdb 它为我创建了数据库和表,然后我尝试添加更多的应用程序,下面是我所做的: 通过创建应用程序 python manage.py startapp newapp 然后我在setting.py中将'newapp'添加到已安装的应用程序中: INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.content
python manage.py syncdb
它为我创建了数据库和表,然后我尝试添加更多的应用程序,下面是我所做的:
通过创建应用程序
python manage.py startapp newapp
然后我在setting.py中将'newapp'
添加到已安装的应用程序中:
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'newapp',
)
最后我运行了syncdb
:
python manage.py syncdb
下面是我得到的结果:
Creating tables ...
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)
我检查了数据库,没有名为newapp
的表,没有包含newapp
的表名,如果您运行:
python manage.py inspectdb > somefile.txt
您可以快速查看数据库结构是否与django模型匹配。我也遇到了同样的问题,并注意到它创建了一个看起来不是空的db.sqlite3文件:
$ ls -l
-rw-r--r-- 1 sauron staff 122880 Jul 31 01:22 db.sqlite3
我尝试使用文件名作为参数再次运行sqlite,结果成功:
$ sqlite3 db.sqlite3
SQLite version 3.7.13 2012-07-17 17:46:21
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .schema
CREATE TABLE "auth_group" (
"id" integer NOT NULL PRIMARY KEY,
"name" varchar(80) NOT NULL UNIQUE
);
... many rows ...
我也遇到了这个问题,通过删除我应用程序中的migrations文件夹,我得以解决这个问题。不知何故,它已经被创建了,并且诱使syncdb认为它已经被完全迁移了,但是这些迁移脚本实际上并没有做任何有用的事情。显然,如果您确实有要保存的迁移,请不要尝试此操作,但我正在使用一个全新的应用程序和型号。我也遇到了同样的问题,但我没有任何“迁移”文件夹。我像下面那样解决了它
我刚刚用型号代码添加了app\u标签
class MyModel(models.Model):
...
class Meta:
managed = True # add this
app_label = 'myapp' # & this
另外,通过在myapp/models/\uuuuu init\uuuuuuuuu.py
from model_file.py import MyModel
您应该使用这个命令
python manage.py migrate
您在manage.py所在的位置运行syncdb时,我尝试了上面的大多数想法:
- 确保导入了
models.py
(验证模块在makemigrate期间执行)
- 删除
迁移
文件夹
- 设置
managed=True
(这是默认设置)
- 使用了
python manage.py inspectdb
(如果我手动创建了表,它会正确地转储该表)李>
关键在于分别在应用程序上运行makemigrations
:
python manage.py makemigrations
您在newapp中有型号吗?请展示你的模型。py.@timo.rieber是的,你是对的。非常感谢!!非常有用。谢谢好的,我发现我的数据库结构与我的模型不匹配。如何修复此问题?引用部分很重要我遇到了相同的问题,删除迁移文件夹允许syncdb针对我的新app+模型运行。如果您在设置文件中对已安装的应用添加“south”注释,则可以创建整个数据库