- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
tl;dr:我们想在不丢失以前数据的情况下向数据库添加一个新表。
首先我们使用以下方法转储了数据库:
$ psql -h localhost dbname > dump_file
然后我们将它加载到我们的本地数据库。这工作正常。
问题开始:在向 models.py 添加新模型时,syncdb 不会创建表。但是,如果我们创建一个新的数据库(通过删除数据并运行 syncdb),它会显示为一个已创建的表。
这令人惊讶,因为我们不认为添加新表是 syncdb 无法处理的“模式迁移”。因此,我们认为南方不会在这方面提供帮助。
我是否遗漏/弄错了什么?
这是我们的代码:
class Person(models.Model):
# attributes
class A(models.Model):
# attributes
class B(models.Model):
a_fk = models.ForeignKey(A)
# more attributes
class ProblemModel(models.Model)
p_fk = models.ForeignKey(Person)
a_fk = models.ForeignKey(A)
b_fk = models.ForeignKey(B)
使用命令的相关表的输出:
$ ./manage.py sqlall appname
是:
CREATE TABLE "appname_problemmodel" (
"id" serial NOT NULL PRIMARY KEY,
"p_fk" integer NOT NULL REFERENCES "appname_person" ("p_fk") DEFERRABLE INITIALLY DEFERRED,
"a_fk" integer NOT NULL REFERENCES "appname_a" ("id") DEFERRABLE INITIALLY DEFERRED,
"b_fk" integer NOT NULL REFERENCES "appname_b" ("id") DEFERRABLE INITIALLY DEFERRED
)
Django 版本 1.5.1
ProblemModel 是我们要添加的新模型。
在此先感谢您的帮助!
最佳答案
首先,您的数据恢复命令输入了错误的符号。它应该是:-
$ psql -h localhost dbname < dump_file
[django-admin-flush] ( https://docs.djangoproject.com/en/1.5/ref/django-admin/#=django-admin-flush ) 有一个使用选项 - * --no-initial-data* 将数据库恢复到先前状态的示例。
最好使用 south 并执行以下命令 -
('python manage.py migrate --no-initial-data')
('python manage.py syncdb')
要将数据恢复到数据库,您可以使用带有 admin.py 的转储或直接使用您的数据库命令。
关于python - Django:加载转储后 syncdb 不创建新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19022750/
我想创建一个名为“database1.sqlite”的数据库的表,所以我运行命令: python manage.py syncdb 但是当我执行命令时,我收到以下错误: Unknown command
您好,我对 Django 还很陌生,刚刚学习了 Python。我正在努力将其设置好。所以现在道歉! 我安装了 django 和 python (windows 7)。到目前为止,教程中的所有内容(某种
我有一个具有以下结构模型的 Django 项目: my_model/ ├── __init__.py ├── models/ ├── __init__.py ├── my_model.
我有一个项目,结构如下: project/ __init__.py db/ models/ __init__.py article.py
有没有办法在不加载 fixture 的情况下运行 syncdb?xo 最佳答案 ./manage.py help syncdb 建议如下: ./manage.py syncdb --no-initia
我试图让我的应用程序在 syncdb 上运行一些自定义 SQL,官方方法是将一些 INSERT 语句放入/sql/.sql 现在,当我运行“manage.py sqlall”时,我想要运行的所有 SQ
我正在新的开发环境中部署一个项目。 当我使用 South 时,我做了: $ python manage.py syncdb --all $ python manage.py migrate --fak
这次我想不是我愚蠢,而是真正的冲突。我有以下代码(简化): from django.db import models class Alpha(models.Model): relation =
是否可以让 manage.py syncdb 命令仅将自定义权限同步到 auth_permission table ?我不想为应用模型安装默认的三个权限,即 foo.add_bar , foo.cha
我在 PostgreSql 中有一个名为“tests”的数据库。我想编写 sh 脚本以将其与 django 同步,运行测试然后删除所有表。谁能提出合适的解决方案?一些脚本: DJANGO_DATABA
我是 python 和 Django 的新手,自从我们的编码员离开海外后,我实际上被派去为我的公司完成一些编码。 当我运行 python manage.py syncdb 时,我收到以下错误 psyc
我正在运行 syncdb。 Django 找到一个内容类型,我已经删除了相应的表: The following content types are stale and need to be delet
我添加了新模型并推送到我们的登台服务器,运行 syncdb 来创建它们的表,然后它就锁定了。就“创建表 photosusertag”而言,postgres 输出显示创建“photos_photouse
我有一些抛出的代码导致 syncdb 抛出错误(因为它试图在创建表之前访问模型)。 有没有办法让代码不在 syncdb 上运行?像这样的东西: if not syncdb: run_some_
我在基于 django 的应用程序中使用 Neo4Django,并尝试同时使用两个数据库:Neo4j 和 PostGIS。因此,我按照文档( http://neo4django.readthedocs
我的 models.py 中有这个: class AuditableTable(models.Model): class Meta: abstract = True
以前可以,现在不行了。 python manage.py syncdb 不再为我的应用创建表格。 来自 settings.py: INSTALLED_APPS = ( 'django.cont
我向现有模型添加了一个多对多字段,并期望 syncdb 创建一个新表,但那里什么也没有。这是模型的样子: class Author(models.Model): first_name = mo
我最近更新了我的模型,向它添加了一个 BooleanField,但是当我执行 python manage.py syncdb 时,它不会将新字段添加到模型的数据库中。我该如何解决这个问题? 最佳答案
我想了解 ./manage.py syncdb --all 究竟做了什么?我最近遇到了一个数据库问题,我可以通过运行此命令来修复它,但我不确定它在幕后做了什么。我知道 syncdb 为未随南方迁移的已
我是一名优秀的程序员,十分优秀!