我正在尝试按照本教程,但我坚持第5步.
当我执行
[〜/ Django Projects/netmag $] python manage.py syncdb
我收到以下错误消息:
Unknown command: 'syncdb'
Type 'manage.py help' for usage.
Run Code Online (Sandbox Code Playgroud)
这里是./manage.py help不包含syncdb命令的输出.我该如何添加?
谢谢你的帮助!
当我运行迁移时,我收到此错误:
"创建新内容类型时出错.请确保contenttypes"RuntimeError:创建新内容类型时出错.在尝试单独迁移应用之前,请确保迁移了contenttypes.
在settings.py中:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admindocs',
'blog',
]
Run Code Online (Sandbox Code Playgroud)
如果我'blog',从settings.py中删除:
:~/Django Projects/netmag$ python manage.py migrate blog
CommandError: App 'blog' does not have migrations.
:~/Django Projects/netmag$ python manage.py makemigrations blog
App 'blog' could not be found. Is it in INSTALLED_APPS?
Run Code Online (Sandbox Code Playgroud) >>> from django.core.management import call_command
>>> call_command('syncdb')
Run Code Online (Sandbox Code Playgroud)
从python脚本中执行syncdb管理命令.但是,我想运行相当于
$ python manage.py syncdb --noinput
Run Code Online (Sandbox Code Playgroud)
来自python shell或脚本.我怎样才能做到这一点?
如果不打扰我是否要创建超级用户的问题,以下行不起作用.
>>> call_command('syncdb', noinput = True) # asks for input
>>> call_command('syncdb', 'noinput') # raises an exception
Run Code Online (Sandbox Code Playgroud)
我使用Django 1.3.
任何人都可以告诉他们之间是否存在差异
>manage.py flush # or reset
Run Code Online (Sandbox Code Playgroud)
和
>manage.py sqlclear appname | python manage.py dbshell
>manage.py syncdb
Run Code Online (Sandbox Code Playgroud) 我正在将django网站从一个服务器移动到另一个服务器,我尝试了syncdb,所以我放了python manage.py syncdb,我得到了这个输出:
Syncing...
Creating tables ...
The following content types are stale and need to be deleted:
orders | ordercontact
Any objects related to these content types by a foreign key will also
be deleted. Are you sure you want to delete these content types?
If you're unsure, answer 'no'.
Type 'yes' to continue, or 'no' to cancel: no
Installing custom SQL ...
Installing indexes ...
No fixtures found.
Synced:
> django.contrib.auth
> django.contrib.contenttypes
> django.contrib.sessions
> …Run Code Online (Sandbox Code Playgroud) 由于将OSX升级到版本10.7.3,当我尝试运行Django"syncdb"命令时,我从Postgresql 8.4.2收到以下psycopg2错误:
psycopg2.OperationalError: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
Run Code Online (Sandbox Code Playgroud)
我可以毫无意外地打开psql,但是当我尝试运行"pg_ctl status"时,我也收到了这个错误:
pg_ctl: could not open PID file "/Library/PostgreSQL/8.4/data/postmaster.pid": Permission denied
Run Code Online (Sandbox Code Playgroud)
有相关性吗?
当我正在尝试syncdb我的django项目时,我看到以下抱怨:
The following content types are stale and need to be deleted:
myapp |
Any objects related to these content types by a foreign key will also
be deleted. Are you sure you want to delete these content types?
If you're unsure, answer 'no'.
Run Code Online (Sandbox Code Playgroud)
虽然我也读过类似的问题django-syncdb-many-to-many-stale,但是yes因为我在prod实例上,所以我不能冒险打字.
可以yes 安全地删除contenttype中的那些陈旧条目吗?
这次我认为这不是我愚蠢而是实际的冲突.我有以下代码(简化):
from django.db import models
class Alpha(models.Model):
relation = models.ForeignKey('Delta', related_name = 'reverse_relation', blank = True, null = True)
class Meta:
abstract = True
class Beta(Alpha):
pass
class Gamma(Alpha):
pass
class Delta(models.Model):
pass
Run Code Online (Sandbox Code Playgroud)
问题是Delta.reverse_relation可以引用Beta的实例或Gamma的实例.我会以某种方式提供多个related_name值(或一个依赖于类名称的值).我认为问题很明确但是要完整,错误(运行syncdb时):app.beta:字段'关系'冲突的访问者与相关字段'Delta.reverse_relation'.将related_name参数添加到'relation'的定义中.
app.beta:字段'relation'冲突的反向查询名称与相关字段'Delta.reverse_relation'冲突.将related_name参数添加到'relation'的定义中.
app.gamma:字段'关系'的访问者与相关字段'Delta.reverse_relation'冲突.将related_name参数添加到'relation'的定义中.
app.gamma:字段"关系"的反向查询名称与相关字段"Delta.reverse_relation"冲突.将related_name参数添加到'relation'的定义中.
是否有可能将ForeignKey放在父Alpha中,或者是将此代码剪切粘贴到Beta和Gamma的唯一方法?我不喜欢这样做,因为如果我不能在父母的一半中定义所有孩子共享的字段,那就会破坏继承点.
任何帮助都非常赞赏!
(如果有人可以评论为什么错误消息不在代码框中,我会修复它.)
我尝试设置一个简单的models.py文件作为我在线跟踪的本教程的一部分.当我尝试syncdb命令时,出现以下错误:
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/core/management/__init__.py", line 443, in execute_from_command_line
utility.execute()
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/core/management/__init__.py", line 382, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/core/management/base.py", line 196, in run_from_argv
self.execute(*args, **options.__dict__)
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/core/management/base.py", line 231, in execute
self.validate()
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/core/management/base.py", line 266, in validate
num_errors = get_validation_errors(s, app)
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/core/management/validation.py", line 30, in get_validation_errors
for (app_name, error) in get_app_errors().items():
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/db/models/loading.py", line 158, in get_app_errors
self._populate()
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/db/models/loading.py", line 64, in _populate
self.load_app(app_name, True)
File "/Library/Python/2.7/site-packages/Django-1.4-py2.7.egg/django/db/models/loading.py", line 88, in load_app
models …Run Code Online (Sandbox Code Playgroud) 我有一个模型文件夹,其中包含已在数据库中的文件中的一些模型.我刚刚添加了另一个文件/模型,但是当我运行syncdb时它没有被添加到数据库中.我已经尝试过manage.py验证,它运行正常.我也运行了代码,只有在尝试使用"表不存在"进行保存时才会失败.
原始结构是这样的:
/ models
- __ init __ .py
- file1.py
- file2.py
和__ init __ .py看起来像:
from file1 import File1Model
from file2 import File2Model
Run Code Online (Sandbox Code Playgroud)
我添加了file3.py
/models
- __ init __ .py
- file1.py
- file2.py
- file3.py
并修改了__ init __ .py
from file1 import File1Model
from file2 import File2Model
from file3 import File3Model
Run Code Online (Sandbox Code Playgroud)
并且file3的内容(名称可能已经被更改以保护无辜,但除了它的确切文件):
更新:只是尝试添加主键,因为id字段可能已经搞乱了自动添加的整数主键id.还尝试了一些变化,但没有骰子.
from django.db import models
from django.contrib.auth.models import User
class File3Model(models.Model):
user = models.OneToOneField(User)
token = models.CharField(max_length=255, blank=False, null=False)
id = models.CharField(primary_key=True, max_length=255) …Run Code Online (Sandbox Code Playgroud) 如果我想升级(更改)我的数据库模式(通过将它们添加到django模型中来向表添加新字段)而不丢失这些表中的数据,那么最佳解决方案是什么?"syncdb"当然没有添加它们,所以我需要你的建议如何更改表而不删除它们并使用syncdb重新创建.
谢谢,伊格纳斯
django ×10
syncdb ×10
python ×3
contenttypes ×1
database ×1
django-admin ×1
django-south ×1
flush ×1
foreign-keys ×1
model ×1
postgresql ×1
psycopg2 ×1
reset ×1
terminal ×1