Django:加载转储后,syncdb不创建新表

Merlinsbrain

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是我们尝试添加的新模型。

在此先感谢您的帮助!

an

首先,您的数据恢复命令输入符号错误。它应该是 :-

$ 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')

要将数据还原到数据库,可以将dump与admin.py一起使用,或者直接使用database命令。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

创建特定表的转储

来自分类Dev

将转储加载到新存储库后的SVN日志

来自分类Dev

Laravel 4在转储自动加载后返回FatalErrorException

来自分类Dev

Windows为什么不创建小型转储?

来自分类Dev

pg_dump突然不转储所有表

来自分类Dev

Django 1.6.5中的Syncdb命令不会在models.py中创建新的模型类-说表已经存在

来自分类Dev

MySQL:创建一致的审计表转储

来自分类Dev

REGEX:在sql转储中获取创建表查询

来自分类Dev

恢复Django转储

来自分类Dev

Django syncdb不会从应用程序创建表

来自分类Dev

快速转储Azure表

来自分类Dev

phpexcel不创建新表

来自分类Dev

如何还原和转储Windows注册表而不覆盖当前注册表

来自分类Dev

无法将 MySQL 表转储分解为与表行相对应的新行

来自分类Dev

存储库内容(文件/目录)未在svn转储和加载的新位置显示

来自分类Dev

当应用程序设置了SUID时,为什么不创建核心转储?

来自分类Dev

当应用程序设置了SUID时,为什么不创建核心转储?

来自分类Dev

即使注册表设置正确,Windows也不产生完整的故障转储

来自分类Dev

使用SQLFILE参数导入转储不返回表内的数据

来自分类Dev

Django migration:不创建表

来自分类Dev

OutOfMemory由于“无法创建新的本机线程”而导致的堆转储

来自分类Dev

加载文件时的核心转储

来自分类Dev

assetic:dump命令不转储图像

来自分类Dev

转储进程核心而不终止进程

来自分类Dev

转储进程核心而不终止进程

来自分类Dev

内核恐慌不转储日志文件

来自分类Dev

如何创建SQL脚本以转储SQL Server表数据?

来自分类Dev

是否可以转储/检查后堆栈?

来自分类Dev

是否可以转储/检查后堆栈?

Related 相关文章

热门标签

归档